2015-02-08 3 views
-1

пытается трудно, и не найдя, как выразить вопрос в Lambda ..выражение в лямбда-исчислении

Возможно, я ошибаюсь в поиске? Насколько я понимаю, в лямбда-исчислении, мы получаем для определения параметров, операций и т.д. например: TRUE: = λx.λy.x FALSE: = λx.λy.y И: = λp.λq .pqp OR: = λp.λq.ppq и т.д ..

Am интересно, как даже теоретически, есть способ вычислить вопрос с лямбда.

т.е. anonnymous/абстрактный вопрос, как:

ВОПРОС: = The_Lambda_expression

Что может вычислить, как вопрос - должна быть функция, нет ??

Любые идеи? Улики?

Приветствия и огромное спасибо!

+0

Что вы имеете в виду "вопрос"? Условное (например, «if-then-else») или что-то еще? – molbdnilo

+0

Я имею в виду, что что-то неизвестно. Например, мне понравился этот суп? Я не знаю. Это открытый вопрос в моей голове ... Что-то, о чем программа задумывается и размышляет. Должна быть функция для этого, нет? – ron

+0

Как бы вы выразили: «Мне понравился этот суп?» на любом другом языке? На самом деле это не похоже на вопрос, на который может ответить компьютерная программа. – sepp2k

ответ

0

Похоже, что вы ищете предикаты, что является формальной формой вопросов, для которых ответ/ответ ДА ​​(Истина) или НЕТ (False).

Ознакомьтесь с разделом «Логика и предикат» по адресу http://en.wikipedia.org/wiki/Lambda_calculus#Logic_and_predicates.

+0

Большое спасибо - справедливая точка. Это не совсем то, что имело в виду изначально, потому что я не думал о логических, да/нет, но более широких возможных (нечетких?) Вопросах. Хотя возможно, что вопросы, а не ответы или возможный диапазон ответов, не соответствуют современным вычислениям? – ron

0

Ваш последний комментарий заставляет меня думать, что вы хотите знать, как читать пользовательский ввод (т. Е. «Задавать пользователю вопрос»). Если это не то, что вы имели в виду, не стесняйтесь уточнять.

Исчисление лямбда не имеет понятия IO как такового - только функции с параметрами. Поэтому вместо того, чтобы запрашивать пользователя для ввода, вы должны написать функцию, которая берет требуемую информацию в качестве ее параметров.

Давайте рассмотрим следующий пример: пользователь может заказать еду, содержащую N кусочков мяса и, возможно, суп, чтобы пойти с ним, и мы хотим рассчитать общую стоимость в долларах. Каждый кусок мяса стоит два доллара, а суп стоит один. Для того, чтобы представить это мы напишем функцию, которая принимает логическое soup, который представляет собой, хочет ли пользователь суп, а число pieces_of_meat, которое представляет, сколько кусков мяса пользователь хочет:

λ soup. λ meat. meat * 2 + (soup 0 1)