Я пытаюсь объявить непреложный переменную в Haskell:Определение переменной в Haskell
let a = [1, 2]
main = print $ sum a
, но он утверждает,
parse error (possibly incorrect indentation)
, что с этим делать?
Я пытаюсь объявить непреложный переменную в Haskell:Определение переменной в Haskell
let a = [1, 2]
main = print $ sum a
, но он утверждает,
parse error (possibly incorrect indentation)
, что с этим делать?
let
не используется при определении верхнего уровня. Есть несколько способов, чтобы исправить свои программы, некоторые из которых являются
a = [1,2]
main = print $ sum a
Или
main = do
let a = [1,2]
print $ sum a
Или
main = let a = [1,2] in print $ sum a
Обычным источником путаницы для людей, пытающихся использовать let
в верхнем уровень - это когда они пытаются преобразовать какое-то тестируемое выражение в ghci
в фактический исходный файл.
let
может использоваться, когда вы работаете внутри монады. ghci и main
работает внутри IO
монада, поэтому вы можете написать что-то вроде let a = [1,2]
в ghci.
Я не делаю это внутри ghci или main. –
Почему ты говоришь, что если это мне не поможет? –
@MariusKavansky Вы не используете let для определения верхнего уровня в исходном файле. –