我的代码依赖于:
case x of
(-32768) -> Nothing
otherwise -> Just x
x
是Int16
,其范围为-32768到+32767。
适用于GHC 7.8的NeativeLiterals
扩展名。我找不到Redhat RHEL6的GHC 7.8,所以我试图让它与GHC 7.6一起工作。问题是NegativeLiterals
在7.8中是新的。
有没有人知道解决方法?
答案 0 :(得分:2)
你可以使用警卫:
编辑:好的,所以我需要明确打字。这应该是显而易见的。所以修改后的解决方案是:
foo :: Int16 -> Maybe Int16
foo x =
case x of
y | y == fromIntegral (-32768) -> Nothing
| otherwise -> Just x