我正在尝试根据比率进行模式匹配:
isValid :: Ratio Int -> Bool
isValid (num % den) = ...
但是,这会产生:
Parse error in pattern: num % den
有趣的是,Data.Ratio
包以这种方式定义了numerator
anddenominator
函数,但是使用了:%
操作符:
numerator (x :% _) = x
denominator (_ :% y) = y
但是,我无权访问后一个运算符。
谁能解释为什么我的模式匹配不起作用以及如何解决它?