lambda演算的实际应用
Practical usage of lambda calculus
最近开始自学lambda演算。我无法想象的一件事是如何使用这种语言来构建实际应用程序。我能想到的一个简单用例如下:假设我们有 class 中多个学生的考试成绩记录。喜欢
name = John, math=30, science = 40 , english = 60
name = Jane, math=22, science = 80, english = 45
name = Mark, math=77, science = 43, english = 83
我们如何用 lambda 演算(无类型或简单类型)编写一个程序来计算每个测试分数的平均值 student.Please 请注意,我的问题不是关于上述文本的解析,而是关于实际核心计算 .
Expected output:
name = John, average = 43
name = Jane, average = 49
name = Mark, average = 68
能否请您分享一下如何使用 lambda 演算实现这个简单的计算?
尽管我对 Haskell 知之甚少,但我并不是在寻找 haskell 实现,但我很好奇这在 lambda 演算本身中是如何完成的。
此致。
尽管 lambda 表达式用于许多编程语言,如 JavaScript 和 C#(当然还有所有函数式语言),pure lambda 演算(我假设这就是你所指的)并不意味着在实践中使用。就像图灵机并不适合任何实际应用。
lambda 演算的目的是对计算 的性质进行建模和推理。这包括可计算性、等价性和编码等基础问题。
因此,虽然可以编写一个 lambda 演算表达式来满足您的要求,但这个表达式会很大,而且它本身不会特别有启发性。有趣的是这种表达式的基本构建块是什么样子的:如何对布尔值、布尔运算符、条件分支、整数、算术运算、列表和列表操作进行编码 - 最后,recursion - in pure lambda calculus? Once you know the answer 这些问题,您原则上可以构建您要求的表达式。
最近开始自学lambda演算。我无法想象的一件事是如何使用这种语言来构建实际应用程序。我能想到的一个简单用例如下:假设我们有 class 中多个学生的考试成绩记录。喜欢
name = John, math=30, science = 40 , english = 60
name = Jane, math=22, science = 80, english = 45
name = Mark, math=77, science = 43, english = 83
我们如何用 lambda 演算(无类型或简单类型)编写一个程序来计算每个测试分数的平均值 student.Please 请注意,我的问题不是关于上述文本的解析,而是关于实际核心计算 .
Expected output:
name = John, average = 43
name = Jane, average = 49
name = Mark, average = 68
能否请您分享一下如何使用 lambda 演算实现这个简单的计算?
尽管我对 Haskell 知之甚少,但我并不是在寻找 haskell 实现,但我很好奇这在 lambda 演算本身中是如何完成的。
此致。
尽管 lambda 表达式用于许多编程语言,如 JavaScript 和 C#(当然还有所有函数式语言),pure lambda 演算(我假设这就是你所指的)并不意味着在实践中使用。就像图灵机并不适合任何实际应用。
lambda 演算的目的是对计算 的性质进行建模和推理。这包括可计算性、等价性和编码等基础问题。
因此,虽然可以编写一个 lambda 演算表达式来满足您的要求,但这个表达式会很大,而且它本身不会特别有启发性。有趣的是这种表达式的基本构建块是什么样子的:如何对布尔值、布尔运算符、条件分支、整数、算术运算、列表和列表操作进行编码 - 最后,recursion - in pure lambda calculus? Once you know the answer 这些问题,您原则上可以构建您要求的表达式。