Haskell,没有实例(Show([String,Int)] - > Int

时间:2014-06-17 12:23:21

标签: haskell happy

尝试在这里编译Haskell.Happy示例:http://www.haskell.org/happy/doc/html/sec-using.html#sec-other-datatypes,在生成快乐的.hs文件之后,我得到了

No instance for (Show ([String, Int)] -> Int

错误,尝试编译它,同时编译的第一部分并运行正常

我做错了什么?

编辑:完整错误消息

No instance for (Show ([(String, Int)] -> Int))
  arising from a use of `print'
Possible fix:
  add an instance declaration for (Show ([(String, Int)] -> Int))
In the first argument of `(.)', namely `print'
In the second argument of `(>>=)', namely `print . calc . lexer'
In the expression: getContents >>= print . calc . lexer

我正在跑步

ghc example.hs

并且该行

main = getContents >>= print . calc . lexer

可能重复的问题的答案是通过环境,但我怎么能在这里做?

1 个答案:

答案 0 :(得分:4)

calc可能属于[Token] -> [(String,Int)] -> Int类型,因此主要应为:

main = getContents >>= print . ($ []) . calc . lexer

注意:($ [])中的列表是环境