haskell - 这个haskell表达式是如何评估的

标签 haskell

我在学习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/

相关文章:

haskell - 使用 fclabel 中的 'left' 镜头时出现类型错误

haskell - 如何简化 Haskell 中的字符串连接?

haskell - 在 Haskell 中查找组合函数的类型

.net - 使用 .NET 实现全文搜索的理想功能语言

haskell - Haskell 中的点管道 ".|"运算符是什么?

Haskell euclid算法两个整数的最大公约数

haskell - 如何将 Dynamic 转换为 Forall 的东西

Haskell,句法减少括号

haskell - 如何使用 Servant 处理飞行前 OPTIONS 请求

haskell - 当前模块是否有命名空间?