Haskell выдает ошибку синтаксического анализа в странном месте

Игрушечный пример, но все равно разочаровывает:

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говорит мне, что у меня есть Ошибка синтаксического анализа в шаблоне: putStrLn, и я не могу понять, почему он не может быть синтаксическим анализом.

5
задан Chris Martin 6 September 2017 в 08:06
поделиться