潜在的问题:
是什么演算为我们做,我们不能与基本功能属性和符号在中学代数一般学吗?
首先,抽象在lambda演算的上下文中是什么意思?我对“抽象”一词的理解与某种概念的概念概括-机器不同。
但是,lambda函数通过消除函数名称来防止某种程度的抽象。例如:
f(x) = x + 2
h(x, y) = x + 5 y
但是,即使不定义这些功能的机制,我们也可以轻松地讨论它们的组成。例如:
1. h(x, y) . f(x) . f(x) . h(x, y) or
2. h . f . f . h
我们可以根据需要包含参数,也可以完全抽象以概述发生的情况。而且我们可以快速将它们简化为一个功能。让我们看一下构成2。我可以根据自己的重点来写一些学生的细节层次:
g = h . f . f . h
g(x, y) = h(x, y) . f(x) . f(x) . h(x, y)
g(x, y) = h . f . f . h = x + 10 y + 4
让我们使用lambda演算执行以上操作,或者至少定义函数。我不确定这是正确的,但我相信第一和第二个表达式会增加2。
(λuv.u(u(uv)))(λwyx.y(wyx))x
并乘以5y。
(λz.y(5z))
与其说是抽象,不如说是加法,乘法等含义的精髓。在我看来,抽象是指更高层次而不是更低层次。
此外,我正在努力了解为什么lambda演算甚至是一回事。有什么好处
(λuv.u(u(uv)))(λwyx.y(wyx))x
过度
h(x) = x + 5 y
或组合符号
Hxy.x+5y
甚至Haskell的符号
h x y = x + 5 * y
再说一遍,lambda演算对我们有什么作用,而f(x)样式的函数属性和符号是我们不熟悉的,这是我们做不到的。