我尝试研究更严格的编程主题,因为我意识到有很多范例我不知道。我遵循SICP和计算机科学基础等书籍。我现在正在以正式的,面向证据的方式学习算法。当我学习Quicksort时,我意识到我不知道如何在函数式语言中实现它。它是一种就地排序算法,但如何在没有突变的情况下实现这一目标超出了我的范围。
也许有一个简单的答案,我还不知道很多实践和理论概念。但我读到函数式语言是基于lambda演算而且它与图灵机相当。我在Haskell中找到了一个实现,但我不知道monad,希望我最终能学到。
那么你能用尽可能简单的术语解释这是怎么回事吗? lambda演算本身是否具有变异的概念?不要对此太过苛刻,因为我不太了解lambda演算,只是在Scheme中编程。只需要一点解释就可以得到是或否答案。
答案 0 :(得分:1)
lambda演算本身是否具有变异的概念?
不,没有突变的概念。你只需要函数application(apply)和function abstraction(lambda)。