人们说Haskell没有状态。 我认为实际的程序需要状态,Haskell也不例外。 Haskell没有用于保存状态的变量,那么Haskell是如何保存状态的呢? 我认为Haskell使用头部的lambda变量作为内存!
someAction1 >>= \result1 ->
( someAction2 >>= \result2 ->
( someAction3 >>= \result3 -> return (somef result1 result2 result3)))
somef函数可以通过result1、result2和result3获得someAction1、someAction2和someAction3的结果。
lambda变量(result1、result2和result3)起到类似于内存(用于保存状态的变量)的作用。
“Haskell没有状态”并不意味着它在实际编程中不需要状态概念。
lambda代数之所以能够像图灵完备一样完成相同的事情,是因为lambda变量的作用范围。由于lambda变量被用作内存,通用编程是可行的。
我理解得对吗?