我在学习haskell
我遇到了这个我无法理解的表达方式。
(flip const 1 . const flip 3 const 4) 5
最终结果是 5,但我不知道它是如何评估的。
最佳答案
根据 (.)
的定义:
flip const 1 $ ((const flip 3) const 4) 5
根据
const
的定义:= flip const 1 $ flip const 4 5
根据
flip
的定义:= flip const 1 $ const 5 4
根据
const
的定义:= flip const 1 5
根据
flip
的定义:= const 5 1
这是
5
.(作为一个额外的见解,你能找出为什么
flip const y
只是 id
对于所有 y
吗?这会将你的表达式简化为 (id . id) 5
。)
关于haskell - 这个haskell表达式是如何评估的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29659397/