我想了解無點式的概念。我做了一個函數嘗試使用uncurry
添加兩個值。在Haskell中使用咖喱點式自由風格的聲明問題
add = (+) . uncurry
,結果抱怨:
No instance for (Num ((a0, b0) -> c0))
arising from a use of `+'
Possible fix:
add an instance declaration for (Num ((a0, b0) -> c0))
In the first argument of `(.)', namely `(+)'
In the expression: (+) . uncurry
In an equation for `add': add = (+) . uncurry
這是一個聲明的問題?我試過add :: (Int, Int) -> Int
,它不起作用。
嘗試鍵入:T(+)',':噸uncurry',' :t((+)。uncurry)'和':t(uncurry。(+))'。然後':t(uncurry +)'。 – Mephy
答案會告訴你你需要做什麼來解決你的問題,但我更關心你使用'(+)的理由。 uncurry'。你是否期望'uncurry'採取一對並返回兩個值,將這些值傳遞給'(+)'? –
我想我很困惑if(+)被視爲一個函數。我認爲它應該作爲uncurry的一個參數來傳遞。 – Fizzzz