2014-02-08 17 views
0

正如你所知道的與foldl函數定義爲:庫裏在Haskell

foldl :: (a -> b -> a) -> a -> [b] -> a 

我想重寫函數作爲uncurrified功能

我這個嘗試之一:

foldl :: ((a-> b-> a) , a , [b]) -> a 

是那是正確的?也許這不重要,但我會寫一個考試,我很確定這將是其中的一項任務。

感謝您的期待!

回答

3

那麼,那肯定是foldl的不安全形式。然而,有一個多層次的,你可以做到這一點 - 我可以在「完全uncurried形式」會是什麼

foldl'' :: (((a,b) -> a), a, [b]) -> a 

,其中不只是函數本身也是它的功能參數是uncurried。 OTOH,只是在函數調用uncurry會產生僅僅

foldl''' :: ((a->b->a), a) -> [b] -> a 

可能因此也被稱爲「uncurried foldl」,但它肯定不會在考試所需的解釋。

+0

好的,非常感謝您的幫助。我認爲在我們的例子中使用「foldl」就足夠了。謝謝。 – Blnpwr