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


Как получить Y-Combinator в схеме?
Некоторое время назад я закончил замечательную книгу под названием Маленький интриган . Это очень короткая книга, но она оказывает на меня самое глубокое влияние, когда дело доходит до программирования. Книга представлена ​​в формате вопрос/ответ. Он начинается с основ и постепенно переходит к таким концепциям, как Y-Combinator. Честно говоря, мне пришлось вернуться туда и обратно, чтобы понять происхождение Y-Combinator, но у меня действительно был момент «Ага», когда я наконец..

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

Преобразование Python в Haskell/лямбда-исчисление
Что такое код Python в Haskell и лямбда-вычислениях? def f1(): x = 77 def f2(): print x f2 f1 Моя попытка лямбда-исчисления \x. 77 (\x.x)
1627 просмотров
schedule 09.05.2022

Итерационная функция в лямбда-исчислении
у меня есть такая функция iter :: Int -> (a -> a) -> a -> a iter n f a = f (f ... (f a) .. ) как я могу определить такую ​​функцию в нетипизированном лямбда-исчислении? любой намек/помощь будут оценены.
816 просмотров
schedule 30.01.2023

Выражение цифр Чёрча с помощью Boost.Bind
Числа Черча могут быть выражены в C++0x (C++11?), используя новые лямбда-части языка, используя что-то вроде это : typedef function<int(int)> F; static const F id = [=](int x) { return x; }; function<F(F)> church(unsigned int i) {...
192 просмотров

Преобразование лямбда-выражения в схему
У меня есть это лямбда-лямбда-выражение: λx.(λy.(λz.x(yz))) Я пытаюсь написать из него выражение Scheme. Я сделал это: (define (f x)(lambda(y z) (f (y z)))) Это правильно? Если нет, то что я делаю неправильно?
251 просмотров
schedule 21.08.2022

Повторное использование функции Lambda в Haskell
Я должен взять этот код: f x y z = x^3 - g (x + g (y - g z) + g (z^2)) where g x = 2*x^2 + 10*x + 1 И переписать его без куда (или пусть). Они хотят написать это с помощью лямбда-функции (\x ->...) Я пытаюсь повторно использовать...
489 просмотров
schedule 31.01.2023

Встраивание типов высшего порядка (монад!) в нетипизированное лямбда-исчисление
Можно кодировать различные типы в нетипизированном лямбда-исчислении с помощью функций более высокого порядка. Examples: zero = λfx. x one = λfx. fx two = λfx. f(fx) three = λfx. f(f(fx)) etc true = λtf. t false = λtf. f tuple =...
1396 просмотров

Токен END OF FILE с flex и bison (работает только без него)
Хорошо, это своего рода странный вопрос, потому что то, что у меня здесь, работает так, как я хочу. Я пишу синтаксический анализатор для выражения лямбда-исчисления. Таким образом, выражение может быть одним из четырех: Переменная постоянный...
1796 просмотров
schedule 09.11.2022

Лямбда-исчисление — почему здесь нельзя сделать еще одно бета-редукция?
Мне сказали, что термин (z (λy.z x) (λy.y z)) уже в нормальной форме - но я не понимаю, почему. Нельзя ли сделать еще одну бета-редукцию в этом состоянии и заменить все вхождения y в терме (λy.z x) на (λy.y z) , чтобы оно оценивалось...
81 просмотров
schedule 27.06.2022

Можно ли это выразить в бесточечном стиле?
Учитывая следующее выражение для суммирования IEnumerable чисел: let sum l = l |> Seq.reduce(+) //version a можно ли устранить аргумент -- вот так? let sum = Seq.reduce(+) //version b Я получаю сообщение об ошибке от...
669 просмотров
schedule 22.03.2023

Почему этот редуктор лямбда-исчисления не уменьшает succ с 0 до 1?
data Term = Var Integer | Apply Term Term | Lambda Term deriving (Eq, Show) sub :: Term -> Integer -> Term -> Term sub e v r = case e of Var x -> if x == v then r else e Apply m1 m2 -> Apply (sub...
497 просмотров
schedule 16.07.2022

Почему встроенная функция применяется к слишком малому количеству аргументов, которые считаются нормальной формой слабой головы?
В определении Haskell говорится: Выражение находится в слабой нормальной форме головы (WHNF), если оно: конструктор (в конечном итоге применяемый к аргументам), например True, Just (квадрат 42) или (:) 1 встроенная функция,...
1089 просмотров

интерпретировать лямбда-му-исчисление Париго в Haskell
Можно интерпретировать лямбда-исчисление в Haskell: data Expr = Var String | Lam String Expr | App Expr Expr data Value a = V a | F (Value a -> Value a) interpret :: [(String, Value a)] -> Expr -> Value a interpret env (Var x) = case...
812 просмотров

Доступ к внешней переменной внутри блока и Y-комбинатора
Я надеюсь, что вы все в порядке. Я реализую Y-комбинатор с фиксированной точкой в ​​Harbour, и у меня с ним возникают проблемы. Что ж, Y-комбинатор можно определить с помощью лямбда-исчисления как: Y = (λh.λF.F(λ x.((h(h))(F))(x)))...
199 просмотров
schedule 30.08.2023

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

как частично применить произвольный аргумент функции?
Я хочу использовать частичное из functools, чтобы частично применить второй аргумент функции, я знаю, что это легко сделать с лямбдой, а не с частичным, как показано ниже. >>> def func1(a,b): ... return a/b ... >>> func2 =...
309 просмотров

Приключения с нетипизированным лямбда-исчислением
Время от времени люди спрашивают о реализации нетипизированного лямбда-исчисления в Haskell. [Естественно, теперь я не могу найти ни один из этих вопросов, но я уверен, что видел их!] Просто ради смеха, я решил потратить некоторое время на игру с...
374 просмотров
schedule 18.07.2023

Найдите наиболее общие типы следующих терминов лямбда-исчисления.
Мне трудно понять, почему это самые общие типы для соответствующих церковных цифр: 2 = λf.λx. f (f x) : (α → α) → α → α 1 = λf.λx. f x : (α → β) → α → β 0 = λf.λx. x : β → α → α Я думал, что все числительные Черча имеют один и тот же тип:...
373 просмотров

Как уменьшить лямбда-исчисление
Я пытаюсь понять лямбда-исчисление и читаю замечательный статья . На странице 8 есть выражение: (λy.(x(λx.xy))) Если я собираюсь заменить левый крайний край (λy) на t , (λy.(x(λx.xy))) t то результат будет? x(λx.xy)
169 просмотров
schedule 19.09.2022

Приведение члена лямбда-исчисления к нормальной форме
Это для домашнего задания, прежде чем кто-нибудь спросит, я просто ищу руководство. Вот первый вопросительный термин: (λx.λy.x y)(λx.x y) =(λx.λz.x z)(λx.x y) α-renaming =(λz.(λx.x y) z) =(λx.x y) Я хотел бы убедиться, что я...
469 просмотров
schedule 12.09.2022

Можно ли реализовать нетипизированное лямбда-исчисление только с использованием дженериков?
Рассмотрим следующую реализацию нетипизированного лямбда-исчисления: pub enum Term { Var(usize), // a variable with a De Bruijn index Abs(Box<Term>), // an abstraction App(Box<Term>, Box<Term>) // an application }...
338 просмотров
schedule 26.06.2022