我最近开始自学lambda微积分。我无法想象的一件事是,如何使用这种语言来构建实际的应用程序。我可以想到的一个简单的用例是:假设我们有一个班级多名学生的考试成绩记录。喜欢
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-微积分中实现这一点,我感到很好奇。
诚挚的问候。
发布于 2020-12-04 09:48:04
尽管lambda表达式在许多编程语言中使用,比如JavaScript和C# (当然还有所有函数语言),但纯lambda演算(我想这就是您所指的)并不意味着要在实践中使用。就像图灵机器不适合任何实际应用一样。
lambda微积分的目的是对计算性质进行建模和推理。这包括可计算性、等效性和编码等基本问题。
因此,虽然可以编写一个lambda演算表达式来完成您所要求的,但这个表达式将是巨大的,而且它本身并不特别具有启发性。有趣的一点是这种表达式的基本构造块是什么样子的:如何用纯lambda演算编码布尔值、布尔运算符、条件分支、整数、算术操作、列表和列表操作--最后是递归?一旦您了解了这些问题的答案,原则上您就可以构建您所要求的表达式。
https://stackoverflow.com/questions/65110111
复制相似问题