我在这个例子中弄乱了创建一个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,上面的示例将编译?