作为大学里一个用 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])
我收到一条错误消息“无法将预期类型 'Char' 与实际类型 'String' 匹配。
我已经尝试了一段时间来找出问题所在。当这个列表理解返回一个函数列表时,为什么会提到字符?