为什么Haskell具有一个if/then/else
依赖于Bool
类型的内置而不是简单的库函数?如
if :: Bool -> a -> a -> a
if True x _ = x
if False _ y = y
4
我猜想他们明确地想要if / then / else语法,如果没有像agda中那样的mixfix函数,他们将无法获得它们。您所指的功能是三元结构,您可以实现自己,尽管我假设他们给了我们if / then / else糖(很可能只是一个案例中的糖),只是因为它们可以并且无害。.但是我一无所有在这里支持我,这就是为什么我在评论中写这个。
—
Jimmy Hoffa 2013年
对于大多数读者来说,这也许是显而易见的,但是我想指出的是,将îf/ then / else作为函数使用热切的语言(例如scheme或sml)并不是一个好的解决方案,尽管这在懒惰中是合理的。像Haskell这样的语言。
—
Giorgio 2013年