Публикации по теме 'lambda-calculus'


Многоязычные комбинаторы IMK
Многоязычные комбинаторы IMK JavaScript ⬡, Haskell λ, Python 🐍 когда я смотрю Габриэль Лебек говорит о LC в JavaScript Грэм Хаттон говорит о LC в Haskell Дэвид Бизли говорит о LC в Python Не могу не попробовать. Ниже показано, как I M K работает на моем Mac — да, на Mac восьмилетней давности. λa.a, тождественный комбинатор это функция, которая принимает входные данные a и возвращает выходные данные a. Думайте о λa.a как о чем-то вроде f(a) = a , так вам будет..

Понимание условных выражений с λ-исчислением
Несмотря на то, что структура императивных языков программирования смоделирована на основе машинной архитектуры, […], некоторые считают, что использование императивных языков в чем-то более естественно, чем использование функционального языка. Итак, эти люди [ученые-информатики] считают, что даже если бы функциональные программы были столь же эффективны, как императивные программы, использование императивных языков программирования все равно преобладало бы. - Себеста Р. В. (1993)...

Вопросы по теме 'lambda-calculus'

Арифметика с цифрами Чёрча
Я работаю через SICP и проблема 2.6 поставила меня в затруднительное положение. При работе с числами Черча концепция кодирования нуля и 1 как произвольных функций, удовлетворяющих определенным аксиомам, кажется, имеет смысл. Кроме того, имеет...
3542 просмотров

Как бы вы реализовали функцию бета-редукции в F#?
Я пишу лямбда-исчисление на F#, но застрял на реализации бета-редукции (заменяя формальные параметры фактическими параметрами). (lambda x.e)f --> e[f/x] пример использования: (lambda n. n*2+3) 7 --> (n*2+3)[7/n] --> 7*2+3...
1782 просмотров
schedule 03.11.2022

Что означает эта редукция в контексте HLint
Я просматриваю учебник http://haskell.org/haskellwiki/How_to_write_a_Haskell_program . import System.Environment main :: IO () main = getArgs >>= print . haqify . head haqify s = "Haq! " ++ s При запуске этой программы под HLint...
4759 просмотров
schedule 11.06.2023

Y-комбинатор в D?
Я пытаюсь лучше изучить Y-комбинатор (я отчасти понимаю его в Scheme) и реализовать его в D 2.0, и у меня очень плохо получается: auto fact = delegate(uint delegate(uint) recurse) { return delegate(uint n) { return n > 1 ? n *...
283 просмотров

Код, реализующий уникальные возможности каждого ребра лямбда-исчисления
Я не могу объяснить термин лямбда-куб лучше, чем это делает Википедия: [...] λ-куб представляет собой основу для исследования осей уточнения в исчислении конструкций Коканда, начиная с просто типизированного лямбда-исчисления как вершины...
961 просмотров

Выражение лямбда-исчисления, реализующее функцию приложения
Я только что нашел следующее выражение лямбда-исчисления: (((λ f . (λ x . (f x))) (λ a . a)) (λ b . b)) Итак, это функция, которая принимает аргумент f и возвращает другую функцию, которая принимает аргумент x и возвращает результат...
717 просмотров

Эквивалентность моделей вычислений
Я ищу объяснение того, как можно доказать, что модели вычислений эквивалентны. Я читал книги на эту тему, за исключением того, что доказательства эквивалентности опущены. У меня есть базовое представление о том, что означает эквивалентность двух...
880 просмотров

В чем смысл приложения без абстракции в левой части?
термин Lambda может быть: переменная лямбда-абстракция (например, \x.t ) заявление. Если t и s являются лямбда-терминами , то ts является приложением. Итак, приложение с абстракцией в левой части (например, (\x.t)a ) выглядит...
35 просмотров
schedule 07.05.2023

Python: вложенные лямбда-выражения `s_push: ошибка переполнения стека синтаксического анализатора`
Недавно я наткнулся на эту статью , в которой описывается, как кодировать FizzBuzz, используя только Procs в Ruby. , и так как мне было скучно, я подумал, что было бы неплохо попробовать реализовать то же самое на Python, используя лямбда-выражения....
4387 просмотров
schedule 17.08.2022

В чисто функциональных языках данные (строки, целые числа, числа с плавающей запятой...) тоже просто функции?
Я думал о чистых объектно-ориентированных языках, таких как Ruby, где все, включая числа, int, числа с плавающей запятой и строки, сами по себе являются объектами. То же самое и с чистыми функциональными языками? Например, в Haskell числа и строки...
774 просмотров

Список свободных переменных лямбда-выражения
Я просто делал домашнее задание для моего предстоящего теста OCaml, и у меня возникли некоторые проблемы. Рассмотрите язык λ-термов, определяемый следующим абстрактным синтаксисом (где x — переменная): t ::= x | t t | λx. t Напишите...
2661 просмотров
schedule 05.02.2024

Пример типов исчисления Haskell/лямбда
Предположим, что Haskell или лямбда-исчисление представляют следующие типы функций: A -> B -> C (A -> B) -> C Чем они отличаются?
470 просмотров
schedule 26.09.2022

Бета-редукция лямбда-исчисления
Я знаю, что это, вероятно, очень просто, но у меня проблемы с выяснением того, как уменьшить это. Ниже приведено мое уравнение. (λx λy . y x) z Мне просто нужно понять, с чего начать, потому что я совершенно потерян.
1288 просмотров
schedule 03.05.2022

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

Разрешимость бидекартовых замкнутых категорий
Разрешима ли проблема решения для свободной бидекартовой замкнутой категории (BCCC)? Эквивалентно, разрешимо ли равенство для простого лямбда-исчисления, расширенного сильными n-мерными произведениями и суммами? Проблема решения для свободного...
145 просмотров

Haskell - Синтаксис, эквивалентный лямбда-исчислению?
При написании некоторых лямбда-функций в Haskell я изначально писал такие функции, как: tru = \t f -> t fls = \t f -> f Однако вскоре я заметил из примеров в Интернете, что такие функции часто пишутся так: tru = \t -> \f -> t...
2003 просмотров
schedule 13.06.2023

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

В лямбда-исчислении, как бы я написал функцию, которая возвращает истину, когда ее вход является функцией тождества?
В лямбда-исчислении, как бы я написал функцию, которая возвращает истину, когда ее вход является функцией тождества? Предположим, что true — это некоторое закодированное церковью значение true. Кажется, что это должна быть простая функция для...
253 просмотров
schedule 24.03.2023

Как реализовать let* с помощью лямбда
Я занимаюсь лямбда-исчислением, и в моем учебнике написано, как бы вы написали let* , используя лямбда-исчисление. Мои ответы: x, y и z - параметры; v1, v2 и v3 аргументы; е - тело: ((lambda (x y z) (e)) v1 v2 v3) Ответ в книге:...
277 просмотров
schedule 02.03.2023

создание двух связанных AST с запечатанными классами case в Scala
Всякий раз, когда мне приходилось создавать AST в Scala, я использовал шаблон абстрактного запечатанного типажа/кейса. До сих пор это работало очень хорошо, проверка соответствия шаблонов компилятором - большая победа. Однако теперь я столкнулся с...
457 просмотров