我可以将案件置于某个范围或其他数字范围内吗?
说 ...
case x of
+/- 3 -> yes
...
这会是Haskell应该理解的吗?
更新:简而言之,我是否可以匹配间隔而不是数字?
答案 0 :(得分:5)
不,但您可以使用abs
并将其转过来:
对于p
的半径为r
的时间间隔,您可以使用
if abs (x-p) <= r then yes else ...
示例:
Prelude> let inInterval p r x = abs (x-p) <= r
Prelude> inInterval 5 3 1
False
Prelude> inInterval 5 3 2
True
Prelude> inInterval 5 3 8
True
Prelude> inInterval 5 3 9
False