我正在学习haskell,我遇到了这个我无法理解的表达方式.
(flip const 1 . const flip 3 const 4) 5
Run Code Online (Sandbox Code Playgroud)
最终的结果是5,但我不知道它是如何评估的.
Lyn*_*ynn 16
根据定义(.):
flip const 1 $ ((const flip 3) const 4) 5
Run Code Online (Sandbox Code Playgroud)
根据定义const:
= flip const 1 $ flip const 4 5
Run Code Online (Sandbox Code Playgroud)
根据定义flip:
= flip const 1 $ const 5 4
Run Code Online (Sandbox Code Playgroud)
根据定义const:
= flip const 1 5
Run Code Online (Sandbox Code Playgroud)
根据定义flip:
= const 5 1
Run Code Online (Sandbox Code Playgroud)
这是5.
(作为一个小小的奖励洞察,你能找到为什么flip const y只是id为了所有人y吗?这会减少你的表达(id . id) 5.)
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |