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

14
Чисто функциональный эквивалент B-Tree?

Я изучаю идею написания СУБД чисто функциональным способом. Традиционной структурой данных, используемой для индексации, является B-Tree. Я хотел бы знать какой-то чисто функциональный эквивалент B-Tree, который был бы оптимизирован для минимизации доступа к диску....

13
Теория категорий и парсеры - нужны ссылки

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

13
Списки различий в функциональном программировании

Вопрос Что нового в чисто функциональных структурах данных со времен Окасаки? и эпический ответ jbapple, упомянутый с использованием списков различий в функциональном программировании (в отличие от логического программирования), что меня недавно интересовало. Это привело меня к поиску реализации...

13
Продолжение прохождения преобразования двоичных функций

Вспомните преобразование прохождения продолжения (преобразование CPS), которое переводит в (где фиксировано) и до определяется как На самом деле у нас есть монада продолжения с единицей определенной как и умножение определяемое как β A : = R R A R f : A → B β f : β A → β B βAAAβA:=RRAβA:=RRA\beta A...

12
Что делает язык (и его систему типов) способным доказывать теоремы о своих собственных терминах?

Недавно я попытался реализовать Cedille-Core Аарона , минималистский язык программирования, способный доказывать математические теоремы о своих собственных терминах. Я также доказал индукцию для λ-кодированных типов данных на нем, что прояснило, почему его расширения были бы необходимы. Тем не...

12
Каковы отношения между Альтернативой, MonadPlus (LeftCatch) и MonadPlus (LeftDistributive)?

В продолжение Каков пример Монады, которая является Альтернативой, но не МонадПлюс? : Предположим, является монадой. Каковы отношения betweem м будучи Alternative , а MonadPlusCatch и MonadPlusDistr ? mmmmmmДля каждой из шести возможных пар я хотел бы иметь либо доказательство того, что одно...

12
Простые сбалансированные деревья с O (1) concat?

В чисто функциональном худшем случае отсортированные списки с возможностью прокрутки по постоянному времени, Brodal et al. представить чисто функциональные сбалансированные деревья с O (1) сцеплением и O (lg n) вставкой, удалением и поиском. Структура данных несколько сложна. Существует ли более...

11
Что именно означает «семантически наблюдаемый» побочный эффект?

У меня есть вопрос относительно чистых функций. Согласно странице Википедии, один из необходимых компонентов для чистой функции: Оценка результата не вызывает какого-либо семантически наблюдаемого побочного эффекта или вывода, такого как мутация изменяемых объектов или вывод на устройства...

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

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

10
Тип системы, предотвращающей утечки памяти, связанные с ленью?

Возможно, основным источником проблем с производительностью в Haskell является случай, когда программа по неосторожности создает поток неограниченной глубины - это вызывает как утечку памяти, так и потенциальное переполнение стека при оценке. Классический пример - определение sum = foldr (+) 0в...

10
Как вы кодируете абстрактный алгоритм Лампинга, используя комбинаторы взаимодействия?

Комбинаторы взаимодействия были предложены в качестве цели компиляции для λ-исчисления ранее. Эта статья реализует полное λ-исчисление. Известно также, что можно оптимизировать кодировки сети взаимодействия λ-исчисления для подмножества λ-членов, которое можно типом EAL. Эта статья реализует это...

10
Каковы теоретические ограничения языка программирования Stratego?

Stratego - это язык трансформации программирования / переписывание DSL. Энтони Слоун проделал определенную работу по реализации, которая работает на Scala . Каковы теоретические пределы Stratego как функционального языка? (независимо от реализации). Можно ли написать аппликативный порядок...

10
Как выбрать функциональную словарную структуру данных?

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

9
Является ли класс примитивных рекурсивных функционалов эквивалентным классу функций, которые Фетус заканчивает?

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

9
Каковы возможные реализации классов типов Haskell и каковы их (не) преимущества?

Насколько я знаю, функция Haskell с ограничениями классов типов внутренне компилируется в функцию с дополнительными аргументами, которые получают словари с необходимыми реализациями каждого конкретного класса типов. Есть ли другие возможности, как скомпилировать классы типов? Если да, каковы их...