尝试在这里编译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
可能重复的问题的答案是通过环境,但我怎么能在这里做?
答案 0 :(得分:4)
calc
可能属于[Token] -> [(String,Int)] -> Int
类型,因此主要应为:
main = getContents >>= print . ($ []) . calc . lexer
注意:($ [])
中的列表是环境