做案件时我可以加减吗?

时间:2016-04-28 15:17:38

标签: haskell

我可以将案件置于某个范围或其他数字范围内吗?

说 ...

case x of
   +/- 3 -> yes

...

这会是Haskell应该理解的吗?

更新:简而言之,我是否可以匹配间隔而不是数字?

1 个答案:

答案 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