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

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

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

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

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

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

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

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

1
λ-калькуляция: что является наиболее эффективным в представлении функций в памяти?
Я хотел бы сравнить производительность структур данных, закодированных функцией (Черча / Скотта), и классически закодированных (ассемблер / C). Но прежде чем сделать это, мне нужно знать, насколько эффективно / может быть представление функции в памяти. Эта функция, конечно, может быть применена частично (иначе говоря, замыкание). Я заинтересован как в текущем …

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

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

3
Существует ли неизменность в функциональном программировании?
Хотя я работаю программистом в своей повседневной жизни и использую все модные языки (Python, Java, C и т. Д.), У меня все еще нет четкого представления о том, что такое функциональное программирование. Из того, что я прочитал, одно свойство функциональных языков состоит в том, что структуры данных являются неизменяемыми . …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.