截至大学一个大型项目写在Haskell一个简单的自定义语言的解释的一部分,我想打印一些东西来帮助我,我的追求写这个东西的清单。映射秀自定义数据类型
有一个自定义数据类型
data Prog = Prog [Func]
deriving (Show, Read)
,当我尝试打印这个前卫的一个实例,在这个函数的最后一行
interpret :: Prog -> Vars -> String -> MaybeDebug -> IO()
interpret prog vars entry _ = do
putStrLn "The interpreter isn't written yet. Better get onto that!"
putStrLn "\n\n"
putStrLn (show prog)
putStrLn "\n\n"
putStrLn (show vars)
putStrLn "\n\n"
putStrLn (show entry)
putStrLn "\n\n"
putStrLn (map show [func | func <- prog, (func_name func) == entry])
我收到错误“无法匹配预计类型“字符”与实际的类型“字符串”。
我一直在尝试了一段时间来解决问题是在这里。为什么提的字符,列表理解返回funcs列表?
好的谢谢,这是非常有道理的。但是,现在Haskell抱怨说它不能与实际类型'Prog'匹配预期类型'[t0]'。这是一个我认为我通过引入地图显示来修复的问题,但它好像只是掩盖了它。对于这个窘境,你碰巧也有一个同样令人惊讶的简单解释吗? – nebffa 2013-04-08 03:38:59
更新了可能的修复程序。 – 2013-04-08 03:44:49
嘿,伙计非常感谢。你的解释非常清楚,现在有道理。 – nebffa 2013-04-08 04:23:35