lambda演算中的表达式

时间:2015-02-08 17:15:53

标签: lambda functional-programming computation-theory

我正在努力寻找如何在Lambda中表达一个问题。

也许在搜索中错了? 据我所知,在Lambda演算中,我们可以定义参数,操作等。 例如:     TRUE:=λx.λy.x     FALSE:=λx.λy.y     AND:=λp.λq.pqp     OR:=λp.λq.ppq 等。

我想知道,即使在理论上,也有办法用lambda计算一个问题。

即。一个无聊/抽象的问题,如:

问题:= TheLambda_expression

什么可以算作一个问题 - 必须有一个函数,没有?

有什么想法吗?线索?

干杯,非常感谢!

2 个答案:

答案 0 :(得分:0)

您正在寻找的是谓词,这只是一个正式形式的问题,其答案/答案是YES(True)或NO(False)。

查看http://en.wikipedia.org/wiki/Lambda_calculus#Logic_and_predicates上的逻辑和谓词部分。

答案 1 :(得分:0)

您的最新评论让我觉得您想知道如何阅读用户输入(即"向用户询问问题")。如果这不是您的意思,请随时进一步澄清。

lambda演算没有IO的概念 - 只有带参数的函数。因此,您不是要求用户输入,而是编写一个将所需信息作为参数的函数。

让我们考虑以下示例:用户可以订购包含N块肉和任选汤的食物,并且我们想要以美元计算总价。每块肉花费2美元,汤花费1美元。为了表示这一点,我们编写了一个函数,它接受布尔值soup,它表示用户是否想要汤,以及数字pieces_of_meat,它表示用户想要多少块肉:

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