這個問題與這個Function Composition VS Function Application有關,由antal s-z回答。Haskell類型錯誤從函數應用到函數組合
你如何得到這個?
map has type (a -> b) -> [a] -> [b]
head has type [a] -> a
map head has type [[a]] -> [a]
爲什麼下面的代碼有函數組合的類型錯誤?
test :: [Char] -> Bool
test xs = not . null xs
getMiddleInitials :: [String] -> [Char]
getMiddleInitials middleNames = map head . filter (\mn -> not . null mn) middleNames
,但這並沒有錯誤類型
getFirstElements :: [[a]] -> [a]
getFirstElements = map head . filter (not . null)
它是一個必須以利用函數組合寫點免費功能? 我還是不太瞭解函數組合的用法。
請幫忙。 謝謝。
真的不明白rejectMapping例子的最後部分。 – peterwkc 2010-06-27 03:07:07
哪部分你不明白?它背後的動機,它應該做什麼,或者它是如何工作的?它只使用你已經看過的東西,所以如果你仔細想想,你應該可以遵循它! – 2010-06-27 03:28:51