Я знаю, что это работает:Haskell --- Использование "пусть" в "делать" синтаксис в GHCI
do name <- getLine; let nameTag = "Hello, my name is " ++ name in putStrLn nameTag
Как и этот кусок кода при загрузке в GHCI:
hey = do
name <- getLine
let nameTag = "Hello, my name is " ++ name
putStrLn nameTag
Но это не работает:
do name <- getLine; let nameTag = "Hello, my name is " ++ name; putStrLn nameTag
дает следующее сообщение об ошибке:
<interactive>:142:82:
parse error (possibly incorrect indentation or mismatched brackets)
Почему это не работает? Могу ли я заставить его работать? Если да, то как?
Отформатируйте свой код. –
Проблема в том, что парсер считает, что структура вашего кода 'let {nameTag = ...; putStrLn nameTag} 'где он ожидает назначение вместо' putStrLn nameTag'. – Bakuriu