小编rol*_*lly的帖子

Haskell:使用翻转会导致错误:'.>' 的方程具有不同数量的参数

我正在努力理解这里发生了什么。我想实现一个数据类型Direction.>为其定义一个可交换的运算符。到目前为止,我有这个:

data Direction = N | E | S | W | None

(.>) :: Direction -> Direction -> [Direction]
N .> S = [None]
W .> E = [None]
(.>) = flip (.>)
Run Code Online (Sandbox Code Playgroud)

我收到错误Equations for ‘.>’ have different numbers of arguments。这就是我不明白的,因为在 ghci 中检查时,等式的两边都有相同数量的参数:

?> :t (.>)
(.>) :: Direction -> Direction -> [Direction]
?> :t flip (.>)
flip (.>) :: Direction -> Direction -> [Direction]
Run Code Online (Sandbox Code Playgroud)

我可以通过写入d1 .> d2 = d2 .> d1 …

haskell commutativity

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

标签 统计

commutativity ×1

haskell ×1