я должен создать некоторые функции лямбды для>, < и! =Ищет Черч-кодирование (лямбда-исчисление) для определения < , >,! =
Я не имею представления о том, как, может кто-нибудь помочь Я пожалуйста ? PS: Мы только начали с Lambda Calculus, поэтому, пожалуйста, не принимайте никаких предшествующих знаний.
Благодарим вас в ожидании!
Edit - То, что я имел в виду Arithmetic in Lambda Calculus
Edit 2 - Более точно: Ищете Черч-кодирования (лямбда-исчисление) для определения < , > , !=
Примечание редактора: Я думаю, что это то, что ОП пытается задать:
Я пытаясь осуществить следующие операции в бестиповом лямбда-исчислении с использованием кодировки Церкви:
- Больше чем (
GT
или>
). - Мало (
LT
или<
). - Не равен (
NE
или!=
).
Я уже знаю, как реализовать следующее:
- Boolean верно (
TRUE
илиλx.λy.x
). - Boolean false (
FALSE
илиλx.λy.y
). - Логические и (
AND
илиλp.λq.p q p
). - Логический или (
OR
илиλp.λq.p p q
). - Логический не (
NOT
илиλp.λa.λb.p b a
).
Как бы вы написать функции GT
, LT
и NE
в бестиповом лямбда-исчислении?
Что значит «создать функцию лямбды для>» означает? Лямбда, которая просто обертывает оператора? Что же было бы для этого? –
@SebastianRedl: OP кажется (извините, если я ошибаюсь) не очень привык к haskell и может не знать, что <, > и/= являются нормальными функциями. – Kritzefitz
Так что в принципе, он может просто захотеть раздел '(<)', который может быть использован как нормальная функция. –