在Haskell中创建Map的隐式方法

时间:2015-04-07 13:25:02

标签: haskell

我在这个例子中弄乱了创建一个Map。但是我无法编译/重现它。

data State r = S (Maybe r) (Map Char (State r))
data NumberSystem = Zero | Bin | Dec | Oct
automata :: State NumberSystem
automata = s where
    s   = S Nothing     ([(d,s10) | d <- ['1'..'9']] ++ [('0',s0)])
    s0  = S (Just Zero) ([('b',s2)] ++ [(d,s8) | d <- ['0'..'7']])
    s2  = S (Just Bin)  ([('0',s2),('1',s2)])
    ...

我使用fromList来创建它。

s   = S Nothing     (fromList([(d,s10) | d <- ['1'..'9']] ++ [('0',s0)]))
s0  = S (Just Zero) (fromList([('b',s2)] ++ [(d,s8) | d <- ['0'..'7']]))

那么是否存在一个隐式版本,用于在Haskell中创建Maps而不使用fromList,上面的示例将编译?

0 个答案:

没有答案