Một ví dụ đồ chơi nhưng vẫn bực bội:Haskell ném một lỗi phân tích cú pháp ở một nơi xa lạ
numberMapper:: IO()
numberMapper = do codes <- forM [1 .. 4] (\num ->
do putStrLn $ "Enter a code for " ++ show num
code <- getLine
return code)
let numberCodes = zip [1 .. 4] codes
in forM numberCodes (\(num,code) ->
putStrLn $ "Got code " ++ show code ++ " for " ++ show num)
ghci
nói với tôi rằng tôi có một Parse error in pattern: putStrLn
và tôi không thể tìm ra lý do tại sao nó nên không phân tích.
Ok, điều này làm việc nếu tôi thêm niềng răng cho các khối và dấu chấm phẩy ở cuối mỗi 'tuyên bố' - nhưng đó là giải pháp được đề xuất? (có vẻ như một chút không hoạt động: P) – agam
Bạn có thể giả vờ rằng dấu chấm phẩy và niềng răng đã ở đó, nhưng vô hình. (Có những quy tắc cho nơi mà các dấu ngoặc và dấu chấm phẩy tự động đi.) –