我試圖手動派生的(()foldr相似。)推導(()foldr相似)的類型
(.) ::(b1 -> c1) -> (a1 -> b1) -> a1 -> c1
foldr :: (a2 -> b2 -> b2) -> b2 -> [a2] -> b2
然後類型:
b1 = a2 -> b2 -> b2
c1 = b2 -> [a2] -> b2
匹配我得到的類型:
((a2 -> b2 -> b2) -> (b2 -> [a2] -> b2)) -> (a1 -> (a2 -> b2 -> b2)) -> a1 -> (b2 -> [a2] -> b2)
但是後來我對如何減少這個表達感到困惑。
任何幫助?
Thansks,
Sebastián。
這個問題的標題詢問'(foldr(。))',但在實際問題中使用'((。)foldr)'。請編輯,以便他們同意。 – chi