小编dvi*_*tek的帖子

Haskell中Rationals上的模式匹配

以下函数非常简单:

test :: Int -> Int
test x = case x of
    0 -> 0
    1 -> 1
    _ -> 2
Run Code Online (Sandbox Code Playgroud)

事实上,test 0 == 0test 1 == 1,和test 77 == 2.

以下功能几乎一样简单:

import Data.Ratio

test2 :: Rational -> Int
test2 = case x of
    0 -> 0
    1 % 2 -> 1
    _ -> 2
Run Code Online (Sandbox Code Playgroud)

在GHCi中加载此代码会出错Parse error in pattern: 1 % 2.

是什么赋予了?为什么我不能在有理数上进行模式匹配?我可以解决这个例子来自卫兵的现实问题,但我很好奇为什么模式匹配不起作用.

rational-number haskell pattern-matching rational-numbers

3
推荐指数
1
解决办法
910
查看次数