我正在尝试在Haskell中实现字典,我看到数据类型必须为
data Rel a b = a :-> b
但我不明白这是什么意思,我认为它与键值或类似值是同一回事
看起来:->
只是一个花哨的构造函数名称:
Prelude> data Rel a b = a :-> b
Prelude> :t (5 :-> 6)
(5 :-> 6) :: (Num a, Num b) => Rel a b
在此代码中,5 :-> 6
产生一个Rel
值。
data Rel a b = a :-% b
例如,可以使用那里:-%
的构造函数名称作为替代。
也可以使用非运算符,例如
data Rel a b = MkRel a b
和:t MkRel 5 6
。