Я хотел бы привести пример квин в чистом лямбда-исчислении . Я был довольно удивлен, что я не мог найти один, прибегая к помощи. На странице квин есть списки квин для многих «настоящих» языков, но не для лямбда-исчисления.
Конечно, это означает определение того, что я имею в виду под квинем в лямбда-исчислении, которое я делаю ниже. (Я прошу что-то вполне конкретное.)
В некоторых местах, например, Larkin and Stocks (2004), я вижу следующее, цитируемое как «самовоспроизводящееся» выражение: . Это сводится к себе после одного шага бета-сокращения, придавая ему ощущение, похожее на quine. Тем не менее, он не похож на quine в том смысле, что он не завершается: дальнейшие бета-сокращения будут продолжать производить то же выражение, поэтому он никогда не приведёт к нормальной форме. Для меня quine - это программа, которая завершает и выводит сама себя, и поэтому я хотел бы получить лямбда-выражение с этим свойством.
Конечно, любое выражение, которое не содержит переопределений, уже находится в нормальной форме и поэтому будет завершаться и выводить себя. Но это слишком тривиально. Поэтому я предлагаю следующее определение в надежде, что оно допустит нетривиальное решение:
определение (предварительное): Квина в лямбда-исчислении - это выражение вида
Учитывая, что лямбда-исчисление является эквивалентом Тьюринга, как и любой другой язык, кажется, что это возможно, но мое лямбда-исчисление ржаво, поэтому я не могу придумать пример.
Ссылка
Джеймс Ларкин и Фил Стокс. (2004) "Самовоспроизводящиеся выражения в лямбда-исчислении". Конференции в области исследований и практики в области информационных технологий, 26 (1), 167-173. http://epublications.bond.edu.au/infotech_pubs/158