我剛開始在uni學習Haskell,在玩弄它的時候,我偶然發現了一個我似乎無法理解的問題。 下面的代碼給了我希望的結果:Haskell函數組合方法
import Data.List
list = ["Hello", "world"]
main = print $ intercalate " something " (reverse (map reverse list))
輸出:
"dlrow something olleH"
但我想寫用點來代替括號中的「主」的功能,因此它試圖:
main = print $ intercalate " something " . reverse . map reverse list
但是,這給我以下錯誤:
test.hs:5:54: error:
• Couldn't match expected type ‘a0 -> [[Char]]’
with actual type ‘[[Char]]’
• Possible cause: ‘map’ is applied to too many arguments
我認爲這些圓點與括號完全相同:函數組合。爲什麼括號會起作用,而這些點會給我一個類型相關的錯誤?任何幫助將不勝感激!
非常感謝這個清晰的解釋! – Felix