你能在WHEN条款中进行多次评估吗?
例如,有没有办法做这样的事情:
when (x == "Open" and y == "Ready") $ do...
Run Code Online (Sandbox Code Playgroud)
我可以得到一个单一的条件,但如果我需要两者都是真的怎么办?
怎么样的
when (x == "Open" && y == "Ready") $ do
...
Run Code Online (Sandbox Code Playgroud)
&& 只是一个普通的中缀运算符定义为
True && a = a
False && _ = False
Run Code Online (Sandbox Code Playgroud)
请注意,懒惰具有与其他语言完全相同的短路特性!
在完全独立的注释中,Haskell-ish方式不是使用字符串来表示不同的状态,而是定义自己的类型
data StateOfFoo = Ready
| Open
| Closed
| ...
deriving(Eq)
Run Code Online (Sandbox Code Playgroud)
然后使用x == Open && y == Ready例如.通过这种方式,您可以清楚地了解您期望x和将来的类型y.
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |