Вопросы с тегом «functional-programming»

Функциональное программирование - это парадигма программирования, которая в основном использует функции в качестве средства для построения абстракций и выражения вычислений, которые составляют компьютерную программу.

4
Почему важно, чтобы функции были анонимными в лямбда-исчислении?
Я смотрел лекцию Джима Вейриха « Приключения в функциональном программировании ». В этой лекции он вводит понятие Y-комбинаторов, которое, по существу, находит неподвижную точку для функций более высокого порядка. Один из мотивов, как он упоминает, состоит в том, чтобы иметь возможность выражать рекурсивные функции с использованием лямбда-исчисления, так что теория …

3
Функция ML типа 'a ->' b
Наш профессор попросил нас подумать о функции в OCaml, которая имеет тип 'a -> 'b т.е. функция одного аргумента, которая может быть чем угодно, и которая может возвращать что угодно другое. Я думал об использовании raiseв функции, которая игнорирует ее аргумент: let f x = raise Exit Но профессор сказал, …

3
Как сделать язык гомоиконическим
Согласно этой статье следующая строка кода на Лиспе выводит «Hello world» на стандартный вывод. (format t "hello, world") Lisp, который является гомоиконическим языком , может обрабатывать код как данные следующим образом: Теперь представьте, что мы написали следующий макрос: (defmacro backwards (expr) (reverse expr)) в обратном направлении - это имя макроса, …

3
Изучение теории языка программирования
Недавно я чрезвычайно заинтересовался пониманием и доказательством аспектов (функциональных) языков программирования. Однако, как я углублюсь в глубину, такие вещи, как исчисление , теория категорий и денотационная семантика, немного трудно найти без надлежащего объяснения.λλ\lambda Я читаю SICP (довольно поучительная книга), но я хочу углубиться в теорию функционального программирования. Есть ли какие-нибудь …

1
Нет наивных множеств Теоретические модели полиморфного лямбда-исчисления?
В статье Филиппа Уодлера о теоремах для свободного он утверждает в разделе 2 о параметричности, что нет наивных теоретико-множественных моделей полиморфного лямбда-исчисления В наивной теоретико-множественной модели типы - это множества, а функции - теоретико-множественные функции, что представляется разумным. Так почему же он говорит, что нет наивных теоретико-множественных моделей полиморфного лямбда-исчисления?

3
Как будет отличаться процессор, предназначенный исключительно для функционального программирования?
Процессоры в некоторой степени разработаны с учетом программного обеспечения, которое люди будут писать для него, неявно или явно. Мне кажется, что если вы посмотрите на архитектуру набора команд, они очень «императивны» в том смысле, что каждая команда кодирует команду императивного стиля. Мне также кажется, что текущие архитектуры набора команд развивались …

2
Есть ли рецензируемые статьи, в которых рассматриваются плюсы и минусы функционального программирования?
Может ли кто-нибудь отослать меня к рецензируемым статьям, изучающим преимущества или недостатки написания кода в функциональном стиле? Существуют ли документы, в которых обсуждается применение лямбда-исчисления в таких областях, как машинное обучение, языковой дизайн и т. Д.?

2
Есть ли теория / абстракция за ООП?
Функциональное программирование имеет очень элегантное Lambda Calculus и его варианты в качестве теории резервного копирования. Есть ли такая вещь для ООП? Что такое абстракция для объектно-ориентированной модели?

2
Предоставляют ли функции высшего порядка больше возможностей для функционального программирования?
Я задал похожий вопрос на cstheory.SE . Согласно этому ответу на Stackoverflow существует алгоритм, который на не ленивом чисто функциональном языке программирования имеет сложность , тогда как тот же алгоритм в императивном программировании - Ω ( n ) . Добавление ленивости к языку FP сделало бы алгоритм Ω ( n …

2
Архитектура ЦП смещена в сторону процедурного времени выполнения?
Могут ли быть внесены какие-либо изменения в ЦП, чтобы они работали лучше для одновременных сред выполнения, таких как Rust? Например, есть ли изменения в реализациях прогнозирования ветвлений или размерах кэша, которые могли бы помочь одновременным выполнениям? У меня сложилось впечатление, что текущие конструкции ЦП могут быть оптимизированы в большей степени …

1
Монада ввода-вывода технически неверна?
На вики Haskell есть следующий пример условного использования монады ввода / вывода (см. Здесь) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Обратите внимание, что в этом примере определение IO aиспользуется, RealWorld -> (a, RealWorld)чтобы …

3
Как «вырубка леса» удаляет «деревья» из программы?
Я думаю, что понимаю, как вырубка лесов потребляет и производит список одновременно (из функции сгиба и разворачивания - посмотрите этот хороший ответ на CodeReview здесь ), но когда я сравнил это с записью в википедии о технике, о которой говорилось «удаление деревья из программы. Я понимаю, как программа может быть …

1
Можно ли выразить такие свойства, как использование памяти функцией, на языке с зависимой типизацией?
Предположим, что кто-то хочет рассуждать о свойствах кода помимо таких вещей, как целостность и функциональная чистота, а также заботится о потреблении памяти или алгоритмической сложности функции. Можно ли это сделать с помощью зависимых систем типирования и эффектов?

2
Реализация неизменяемой (постоянной) структуры данных в виде массива с быстрой индексацией, добавлением, предварительным добавлением, итерацией
Я ищу постоянную структуру данных, похожую на массив (но неизменяемую), позволяющую выполнять быстрые операции индексации, добавления, добавления и итерации (хорошая локальность). Clojure обеспечивает постоянный вектор, но это только для быстрого добавления. Вектор Scala эффективно добавляет и добавляет в постоянное время, но я не могу понять, как он реализован, поскольку он …

1
Подход «CPS» нанес большой вред производительности в SML / NJ; желательные рассуждения
В комментарии к Learning F #: Какие книги, использующие другие языки программирования, можно перевести на F # для изучения функциональных концепций? Макарий заявил: Обратите внимание, что подход «CPS» нанес большой вред производительности в SML / NJ. Его модель физической оценки нарушает слишком много предположений, встроенных в аппаратное обеспечение. Если вы …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.