4

私は比率に対してパターンマッチをしようとしています:

isValid :: Ratio Int -> Bool
isValid (num % den) = ...

ただし、これにより次の結果が得られます。

Parse error in pattern: num % den

興味深いことに、Data.Ratioパッケージはnumeratoranddenominator関数をこのように定義しますが、:%演算子を使用します。

numerator   (x :% _)    =  x
denominator (_ :% y)    =  y

ただし、この後者のオペレーターにはアクセスできません。

パターンマッチが機能しない理由と、それを修正する方法を誰か説明できますか?

4

1 に答える 1