在功能编程基础知识的Erik Meijer的chapter 4中,他基本上写道:
True &&& x | x == True = True
| x == False = False
这不是不必要的冗长吗?我不能写:
True &&& x = x
甚至:
(&&&) True = id
(&&&) False = const False
顺便问一下,为什么我不能写以下内容?
(True &&&) = id
(False &&&) = const False
ghci回应:
Parse error in pattern: True &&&
答案 0 :(得分:12)
是的,你定义它的方式更好。来自序曲:
True && x = x
False && _ = False
您只能在表达式中使用节,而不能在模式中使用。没有深层原因可以在模式中允许(True &&)
。但是,我认为这不是一件值得注意的事情,这是一件非常罕见的事情。