0
我有一个非常简单的函数叫做'fold',它接受函数f并执行它。给定一个函数'add'和两个数字,它会调用这两个数字并显示结果。但是由于下面的编译错误,我无法编译它。什么是错误,具体说明和我能做些什么来解决它?Haskell - 传递一个函数作为参数编译错误
module Main where
add x y = x + y
--fold :: ((a,b)->c) -> a->b->c
fold f n x = f n x
main :: IO()
main = do
fold add 2 3
您声明'main'应该返回'IO()'。 'fold add 2 3'返回什么?你怎么能把返回的值变成'IO()'? –
如果我将IO()更改为Integer,则会给出“无法与实际类型'Integer'匹配的预期类型'IO t0'” – BDillan