【发布时间】:2016-08-19 12:27:23
【问题描述】:
下面的函数非常简单:
test :: Int -> Int
test x = case x of
0 -> 0
1 -> 1
_ -> 2
事实上,test 0 == 0、test 1 == 1 和 test 77 == 2。
下面的函数几乎很简单:
import Data.Ratio
test2 :: Rational -> Int
test2 = case x of
0 -> 0
1 % 2 -> 1
_ -> 2
在 GHCi 中加载此代码会出现错误 Parse error in pattern: 1 % 2。
什么给了?为什么我不能对有理数进行模式匹配?我可以用警卫解决这个例子的实际问题,但我很好奇为什么模式匹配不起作用。
【问题讨论】:
标签: haskell pattern-matching rational-number rational-numbers