教会编码的目的是什么?

时间:2016-03-27 22:10:17

标签: lambda-calculus church-encoding

最近我正在阅读关于Lambda演算和教会编码的文章,虽然我对他们所需要的东西形成了远程理解,但我很难找到使用高阶函数来表示数值或列表而不是使用数值的目的或直接列出。

在编程中,对Church-Encoded表达式执行Lambda演算对机器的资源非常不利,而且似乎是一种效率相当低的技术。我发现程序员通常认为这是一种糟糕的编程习惯,除了Scheme或Haskell程序员之外,原因很奇怪。

使用Church编码是否有任何实际的实际原因?或者它只在理论研究中有用吗?

1 个答案:

答案 0 :(得分:3)

对(正式)语言的分析在技术上变得越小越小。例如,如果您可以将数据类型表示为函数(这是Church编码为您提供的),那么您不需要为您的语言添加数据类型,只是为了能够检查如何操作数据。

对于实用的编程语言,是的,您最常添加定制的数据类型支持;但你仍然可以通过将它们简化为函数来定义它们的语义,然后只使用较小的无数据类型语言的语义。