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


Работаем с Javascript
«Истину всегда можно найти в простоте, а не в множестве и беспорядке вещей». - Исаак Ньютон Хорошее приложение известно своими более простыми взаимодействиями для выполнения более сложных сложных операций. Но когда приложения столь же сложны, как современные, добиться простоты труднее. Более крупные программы труднее понять и они более подвержены ошибкам, поэтому они разбиваются на более мелкие и абстрактные компоненты в соответствии с их проблемами. Один из способов сделать..

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

Ввод комбинатора Y
http://muaddibspace.blogspot.com/2008/01/type-inference-for-simply-typed-lambda.html — это краткое определение простого типизированного лямбда-исчисления в Прологе. Это выглядит нормально, но затем он намеревается присвоить тип комбинатору Y......
2184 просмотров
schedule 02.11.2022

Приоритет операторов лямбда-исчисления
У меня проблемы с пониманием приоритета операторов лямбда-исчисления. Например следующий код: lambda x.x z lambda y.x y будет: lambda x. (x (z lambda y. x y)) or lambda x. ((x z) (lambda y. x y)) ? Еще более...
4382 просмотров

Вычитание церковных цифр в хаскелле
Я пытаюсь реализовать церковные цифры в Haskell, но у меня возникла небольшая проблема. Haskell жалуется на бесконечный тип с Происходит проверка: невозможно построить бесконечный тип: t = (t -> t1) -> (t1 -> t2) -> t2 когда я пытаюсь сделать...
3660 просмотров

Черч Числительные преобразуются в целые без языкового примитива
Можно ли преобразовать церковное число в целочисленное представление без использования языкового примитива, такого как add1? Во всех примерах, с которыми я сталкивался, используется примитив для преобразования в int. Пример: plus1 = lambda...
666 просмотров
schedule 06.01.2024

Шаблон в бесточечном комбинаторе, как он связан с исчислением SKI
В качестве упражнения я преобразовал следующий комбинатор в безточечную запись: h f g x y z = f x (g y z) с обычным соглашением f , g , h в качестве функций и x , y , z в качестве выражений. (Это не домашнее задание, а просто для...
555 просмотров

Как лямбда-исчисление работает с таким выражением, как: (Ly.Lt.yt)zx?
Я не понимаю, как решить это выражение лямбда-исчисления: (Lx.yx)((Ly.Lt.yt)zx) Я не понимаю, как zx передается и оценивается. Он передается Ly или Lt ? Вы можете помочь мне? РЕДАКТИРОВАТЬ: вот как я пытался это решить:...
123 просмотров
schedule 11.11.2023

Проверка понимания: переменная vs. Ценность и функция против абстракции
(Этот вопрос является продолжением этого изучаю Хаскель.) Раньше я находил понятие между «переменной» и «значением» сбивающим с толку. Поэтому я прочитал о вики-странице лямбда-исчисления, а также о предыдущем ответе выше. Я выхожу с...
5105 просмотров

Почему y-комбинатор обеспечивает эквивалентность по Тьюрингу?
В этом ответе говорится Вот базовый y-комбинатор в лямбда-исчислении: Y f = (\x -> f (x x)) (\x -> f (x x)) Т.е. что-то вроде этого в Clojure: (defn Y [f] ((fn [x] (x x)) (fn [x] (f (fn [& args]...
360 просмотров

Есть ли эффективный способ преобразовать унарное число в двоичное число?
Пусть эти типы данных представляют унарные и двоичные натуральные числа соответственно: data UNat = Succ UNat | Zero data BNat = One BNat | Zero BNat | End u0 = Zero u1 = Succ Zero u2 = Succ (Succ Zero) u3 = Succ (Succ (Succ Zero)) u4 = Succ...
3787 просмотров

Факториал Y-Combinator в javascript работает с числами, а не с числами Чёрча.
Мне удалось реализовать кодировку Черча и Y-Combinator, используя функцию стрелки ES6 в javascript. Но когда я попытался вычислить факториальную функцию, FALSE = a => b => b TRUE = a => b => a ZERO = f => z => z ONE = f =>...
379 просмотров

Хорошо типизированные и плохо типизированные лямбда-термы
Я пытался понять прикладное лямбда-исчисление. До сих пор я понимал, как работает вывод типов. Но я не могу понять, в чем смысл высказывания о том, что термин хорошо типизирован или плохо типизирован, и как тогда я могу определить, является ли...
1380 просмотров
schedule 16.11.2023

лямбда-исчисление в scala
Итак, я пытаюсь реализовать основы лямбда-исчисления . Вот оно. Мои номера: def zero[Z](s: Z => Z)(z: Z): Z = z def one[Z](s: Z => Z)(z: Z): Z = s(z) def two[Z](s: Z => Z)(z: Z): Z = s(s(z)) Частично (на самом деле,...
1505 просмотров
schedule 12.04.2024

Конкретные шаги бета-сокращения лямбда-исчисления и почему
Из книги, которую я недавно прочитал: Первый: ????????.(????????.????????.????)(????)((????????.????)????) Самая внешняя лямбда-привязка ???? на данный момент является неприводимой, потому что у нее нет аргумента, к которому можно применить....
905 просмотров

как контролировать порядок оценки при вызове по значению?
У меня есть вопрос о вызове по значению лямбда-исчисления. 1) λx.(λy.y)x — застрявший термин или его следует оценивать как λx.x? 2) λx.(λy.y)(λz.z), а этот? 3) как контролировать порядок оценки в реализации? Я чувствую себя совершенно...
127 просмотров

Почему это недопустимое преобразование эта?
Я работаю над довольно простой проблемой в Haskell. Я пытался подсчитать количество строчных букв в строке. Мое решение таково import Data.Char lowercaseCount :: String -> Int lowercaseCount x = length $ filter isLower x Я посмотрел на...
198 просмотров
schedule 13.12.2023

лямбда-исчисление в C: логические значения и оператор NOT
Я хотел дать реализации на разных языках программирования конструкции лямбда-исчисления логических значений и оператора НЕ. Эти: TRUE = lx.ly. x FALSE = lx.ly. y NOT = lx. x FALSE TRUE Это тривиально, скажем, в Javascript и Python,...
1039 просмотров
schedule 05.01.2024

Запрос на добавление лямбда-исчисления
Как сложить два числа в лямбда-исчислении, используя приведенное ниже арифметическое представление сложения? m + n = λx.λy.(m x) (n x) y 2 = λa.λb.a (a b) 3 = λa.λb.a (a (a b))
114 просмотров
schedule 10.02.2024

Лямбда-нормальный порядок
Итак, следуя этому предыдущему сообщению: этапы сокращения лямбда-исчисления Я все еще путаюсь в некоторых частях. Если у меня есть что-то вроде λx.(λz.zz)(λy.y)x Обозначение из связанного поста: (параметр λ выход) вход...
23 просмотров
schedule 20.10.2022

Является ли λxyz.xz(yz) абстракцией или приложением в лямбда-исчислении?
Согласно лямбда-исчислению, следует ли λxyz.xz(yz) рассматривать как приложение λxyz.xz к (yz) или скобки в xz(yz) просто означают, что операции должны выполняться как (xz)(yz) , а не ((xz)y)z , а xz(yz) полностью находится в «теле»...
151 просмотров
schedule 01.11.2022

Проблема с рекурсией с использованием лямбда-исчисления (с использованием церковных цифр) в Javascript
Я играл с лямбда-исчислением в javascript (node). Я создал несколько цифр Чёрча и пытался создать рекурсивную функцию, которая вычисляет последовательность Фибоначчи, но она определенно не работает! Я пробовал обернуть функцию в комбинатор Y и...
403 просмотров