Вопросы по теме 'lambda-calculus'
Комбинатор S в Erlang
Я начинаю изучать лямбда-исчисление, и мне нужно реализовать комбинаторы I, S, K в Erlang. Конечно, S, K, I означает:
S = λxyz.xz(yz) K = λxy.x I = λx.x
У меня нет проблем с пониманием преобразования I = SKK на бумаге (как показано здесь:...
639 просмотров
schedule
17.09.2022
Как только решение было найдено в лямбда-исчислении, насколько легко преобразовать его в код?
Если бы вы прочитали условие задачи, такое как что-то найденное на TopCoder, и преобразовали его в представление лямбда-исчисления, было бы простым упражнением «преобразовать» его в код Haskell или Lisp?
Другими словами, можно ли решить проблему,...
657 просмотров
schedule
10.06.2023
Понимание политипов в выводе типа Хиндли-Милнера
Я читаю статью в Википедии о Hindley– Вывод типа Милнера пытается разобраться в этом. Пока что я понял:
Типы подразделяются на монотипы и политипы.
Монотипы далее классифицируются как константы типа (например, int или string ) или как...
1908 просмотров
schedule
25.09.2022
Лямбда-выражение Python составляет скрипт итератора
Я пишу скрипт на Python, который должен принимать список функций, написанных в виде лямбда-выражений, и возвращать состав всех функций, но у меня есть стрелка в скрипте, возможно, из-за того, как я использую лямбда-выражение. . Похоже, что даже...
2544 просмотров
schedule
19.02.2023
Цифры церкви: как мне интерпретировать числа из выражений?
Может кто-нибудь объяснить мне с помощью подстановок, как мы получаем число «ноль» или остальные натуральные числа?
Например значение: "ноль"
λf.λx.x
если я применяю это выражение к другому выражению:
"(λf.(λx.x)) a"
затем с...
427 просмотров
schedule
08.03.2024
Рубиновое и лямбда-исчисление
Я пытаюсь понять лямбда-исчисление с помощью procs и ruby. Вот код:
puts -> x { -> y {x.call(y) } }
# => #<Proc:0x2a3beb0@C:/first-ruby.rb:1 (lambda)>
puts -> x { x + 2}.call(1)
# => 3
Что означает -> в приведенном...
608 просмотров
schedule
10.01.2024
Ищем Черч-кодировку (лямбда-исчисление) для определения ‹ , › , !=
Мне нужно создать некоторые лямбда-функции для > , ‹ и !=
Я понятия не имею, как это сделать, может ли кто-нибудь помочь мне, пожалуйста? PS: мы только начали с лямбда-исчисления, поэтому, пожалуйста, не предполагайте никаких предварительных...
4034 просмотров
schedule
05.03.2022
Общая рекурсия в хвостовую рекурсию
Возможно ли теоретически преобразовать каждый вид общей рекурсии в хвостовую рекурсию? Эквивалентны ли они, например, с точки зрения лямбда-исчисления? Это спор между мной и знакомым.
Я считаю, что это невозможно всегда. Например, если у вас...
85 просмотров
schedule
21.03.2022
Расширение рекурсивных функций в Coq
Фон
Я понимаю, что редукция Йота используется для уменьшения/расширения рекурсивных функций. Например, при следующем применении простой рекурсивной функции (факториал над натуральными числами):
((fix fact (n:nat):nat := match n with | O =>...
490 просмотров
schedule
05.01.2023
Существует ли грамматика LL(k) для PCF?
Мы работаем над синтаксическим анализом сверху вниз в классе разработки компилятора. Примерами являются все java-подобные языки. Я решил попробовать простой функциональный язык, чтобы сделать его интересным, поэтому я выбрал PCF ( см., например,...
142 просмотров
schedule
31.01.2023
Докажите распределительный закон умножения над функциями сложения в Haskell
В настоящее время я прохожу курс для начинающих по хаскелю и лямбда-исчислению, и я не знаю, как выполнить следующее упражнение:
Используя следующие определения операций (+) и (*) в haskell, докажите:
1) Закон распределения (*) над (+)...
335 просмотров
schedule
24.11.2022
Бета-редукция некоторой лямбды
У меня есть следующее лямбда-исчисление, и я хочу знать, как его бета-сокращение.
Лямбда это:
λxy.xy
Я предполагаю, что бета-редукция невозможна, потому что замены нет, а x привязан к телу.
Верно ли мое предположение?
83 просмотров
schedule
22.04.2024
Почему мы останавливаемся после достижения этого срока? Лямбда-исчисление
Я вычисляю нормальную форму лямбда-терма. У меня также есть решение, поэтому я знаю, что мои шаги до «конца» были правильными. Данный термин
(\a.\b.(\x.a b x)(\y. b y x) a) (\f. f f)g
и нормальная форма этого
g g (\y. g y x)(\f. f...
39 просмотров
schedule
26.10.2023
Выведите первые n чисел последовательности Фибоначчи в одно выражение
Итак, в последнее время я немного возился с Python и пытаюсь найти способ вывести n-е число последовательности Фибоначчи в одном выражении. Это код, который я написал до сих пор:
(lambda f: f if f<2 else (f-1)+(f-2))(n)
# n == 1 -> 1
# n ==...
2315 просмотров
schedule
03.03.2024
как реализовать лямбда-исчисление в OCaml?
В OCaml мне кажется, что "fun" - это оператор привязки. Есть ли в OCaml встроенная замена? Если да, то как это реализовано? это реализовано с использованием индекса де Брейна?
Просто хочу узнать, как можно реализовать нетипизированное...
1765 просмотров
schedule
18.06.2023
Цифры Черча в лямбда-исчислении
Мне нужно найти функцию P такую, что (с помощью бета-редукции)
P(g, h, i) ->* (h, i, i+1).
Мне разрешено использовать функцию-преемник succ. Из википедии я получил
succ = λn.λf.λx.f(n f x)
Мой ответ P = λx.λy.λz.yz(λz.λf.λu.f(z...
87 просмотров
schedule
01.06.2024
Путаница с типизацией Морте (исчисление конструкций)
В Morte (реализация исчисления конструкций) это выражение хорошо типизировано:
$ morte
( λ(Nat : *)
-> λ(Zero : Nat)
-> Zero
)
(∀(a : *) -> (a -> a) -> a -> a)
(λ(a : *) -> λ(Succ : a -> a) -> λ(Zero : a) ->...
21 просмотров
schedule
01.10.2022
Правильный способ определения конструкторов лямбда-исчисления
Есть ли четкий способ найти термины в лямбда-исчислении? Например, предположим, что у нас есть конструктор пары
pair = λa. λb. λf. f a b
и у нас есть конструктор fst
fst = λp. p (λa. λb. a)
который возвращает первый элемент...
124 просмотров
schedule
04.07.2023
Реализация последовательности Фибоначчи с использованием чистого лямбда-исчисления и чисел Чёрча в Racket
Я уже довольно давно борюсь с лямбда-исчислением. Есть много ресурсов, которые объясняют, как уменьшить количество вложенных лямбда-выражений, но меньше, чтобы помочь мне в написании моих собственных лямбда-выражений.
Я пытаюсь написать...
1907 просмотров
schedule
27.05.2024
Компилятор SystemT и работа с бесконечными типами в Haskell
Я слежу за этой записью в блоге: http://semantic-domain.blogspot.com/2012/12/total-functional-programming-in-partial.html
На нем показан небольшой компилятор OCaml для System T (простой полностью функциональный язык) .
Весь конвейер...
194 просмотров
schedule
22.04.2022