Я пытаюсь построить функцию, которая принимает заданное количество аргументов и всегда возвращает одно и то же значение.Lambda Calculus: создайте функцию, которая принимает больше аргументов с каждой итерацией
Это часть домашней работы. Существует намек при условии:
"К-полосная Т" это функция, которая принимает K аргументы и всегда возвращает T. А "0-полосная T" просто Т.
Где к предоставляется как церковная цифра, а T - выражение лямбда для True (\ x. \ yx).
Полная задача - предоставить выражение лямбда, которое вычисляет функцию k-way ИЛИ. Где число аргументов «boolean» предоставляется перед аргументами «boolean». например:
((OR 3) F T F)
Но сейчас я пытаюсь создать что принимает к аргументы и всегда возвращает T. В качестве первого аргумента представлен k.
((TRUE 2) T F) == T
Поэтому в основном я wan't создать функцию, которая имеет еще один аргумент для каждой церкви числительное «итерационного».
Но почему-то я полностью застрял.
Могу ли я сделать это только с церковной цифрой? Или мне нужна рекурсия (Y-Combinator)?
В целом: Есть ли хорошие инструменты (например, для визуализации), которые поддерживают создание лямбда-выражений.
Я действительно удивлен силой исчисления лямбда, и я действительно хочу ее изучить. Но я не знаю, как ...
Заранее спасибо
Большое спасибо! Мне все еще нужно понять это. Но я думаю, что справимся с вашими объяснениями ... – woodtluk
Не стесняйтесь спрашивать о последующих вопросах ... –
Спасибо. Теперь я понимаю k-way TRUE и смог его реализовать. Я уже смотрел на Схему и пытался следовать курсу MIT Scheme (это несколько старо, но я думаю, что это все-таки очень хорошее введение в функциональное программирование и CS вообще). – woodtluk