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

14
Есть ли рецензируемые статьи, в которых рассматриваются плюсы и минусы функционального программирования?

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

14
Как будет отличаться процессор, предназначенный исключительно для функционального программирования?

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

13
Есть ли теория / абстракция за ООП?

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

13
Предоставляют ли функции высшего порядка больше возможностей для функционального программирования?

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

13
Архитектура ЦП смещена в сторону процедурного времени выполнения?

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

12
Как «вырубка леса» удаляет «деревья» из программы?

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

12
Монада ввода-вывода технически неверна?

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

11
Реализация неизменяемой (постоянной) структуры данных в виде массива с быстрой индексацией, добавлением, предварительным добавлением, итерацией

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

11
Можно ли выразить такие свойства, как использование памяти функцией, на языке с зависимой типизацией?

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

11
Вывод типа на основе ограничений с алгебраическими данными

Я работаю над языком выражения, основанным на генеалогии ML, поэтому, естественно, требуется вывод типа> :) Теперь я пытаюсь расширить решение на основе ограничений для определения типов, основанное на простой реализации в EOPL (Фридман и Ванд), но они элегантно обходят алгебраические типы...

11
Подход «CPS» нанес большой вред производительности в SML / NJ; желательные рассуждения

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

11
Краткий пример экспоненциальной стоимости вывода типа ML

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

10
Делают ли Self Types исчисление индуктивных конструкций устаревшим?

Self Types - это расширение исчисления конструкций [1], которое позволяет языку выражать алгебраические типы данных, закодированные с помощью кодировки Скотта. Кодирование Скотта предоставляет возможность сопоставления с образцом O(1), что является одним из основных мотиваторов для включения...

10
анонимные лямбда-функции (функциональное программирование)

Что такое анонимные (лямбда) функции? Каково формальное определение анонимной функции в функциональном языке программирования? Проще говоря, когда я программирую на схеме / lisp, я бы сказал, что анонимная (лямбда) функция - это функция, которая не связана с идентификатором. Это все, что вы можете...

10
Существует ли парадигма для составления функций «инкрементного обновления» в стиле чистого потока данных?

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

10
Каковы общие формальные методы для проверки правильности функционального кода?

Я хочу предоставить доказательства для частей программы на Haskell, которую я пишу, как часть моей диссертации. Однако до сих пор мне не удалось найти хорошую справочную работу. Вступительная книга Грэма Хаттона « Программирование на Haskell» ( Google Books ), которую я читаю, изучая Haskell,...

9
Термины комбинаторной логики всегда больше?

Таким образом, существует алгоритм преобразования терминов лямбда-исчисления в комбинаторную логику с использованием комбинаторов SK. Это производит вещи, которые взрываются в размере. Я хотел бы знать больше об этом взрыве в размере. Однако я не могу придумать лучшего алгоритма. Я слышал, что...

9
Существует ли неизменность в функциональном программировании?

Хотя я работаю программистом в своей повседневной жизни и использую все модные языки (Python, Java, C и т. Д.), У меня все еще нет четкого представления о том, что такое функциональное программирование. Из того, что я прочитал, одно свойство функциональных языков состоит в том, что структуры данных...

9
Проверка операции сортировки в системе типов

Я хочу знать, насколько полезна система типов в языке программирования. Например, я знаю, что на языке программирования с зависимой типизацией мы можем создать Vectorкласс, включающий размер вектора в сигнатуру типа. Это как фактический пример. Мы также можем написать функцию, appendиспользуя эти...