我貫通進入「學習你一些哈斯克爾」,我已經寫了以下應用:
import System.IO
main = do
filename <- getLine
handle <- openFile filename ReadMode
content <- hGetContents handle
putStr . unlines . (map isLong) . lines $ content
hClose handle
isLong :: String -> String
isLong x = if length x > 10 then x ++ " long enough" else x ++ " could be better!"
和它的作品,但是當我刪除行和內容之間的「$」彙編失敗。
你能幫我理解爲什麼這是錯的嗎?我正在考慮用點組成語句,我得到一個函數(String - > IO()),並將其應用於「內容」,但爲什麼在這裏需要「$」?
謝謝!