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