Haskell 编程语言有哪些鲜为人知但有用的功能。 (我知道这门语言本身不太为人所知,但请与我一起工作。即使是对 Haskell 中简单事物的解释,例如用一行代码定义斐波那契数列,也会得到我的支持。)
- 尝试将答案限制在 Haskell 核心
- 每个答案一个功能
- 提供该功能的示例和简短描述,而不仅仅是文档链接
- 使用粗体标题作为第一行来标记功能
最佳答案
用户定义的控制结构
Haskell 没有速记三元运算符。内置的 if
-then
-else
始终是三元的,并且是一个表达式(命令式语言往往有 ?:
=表达式,if
=语句)。不过,如果你愿意的话,
True ? x = const x
False ? _ = id
将(?)
定义为三元运算符:
(a ? b $ c) == (if a then b else c)
您必须求助于大多数其他语言中的宏来定义您自己的短路逻辑运算符,但 Haskell 是一种完全惰性的语言,因此它可以正常工作。
-- prints "I'm alive! :)"
main = True ? putStrLn "I'm alive! :)" $ error "I'm dead :("
关于haskell - Haskell 的隐藏功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/211216/