Я нахожу очень странное поведение для некоторого Haskell кода, над которым я работаю. Я работаю в файле .hs, и следующая простая функция компилируется в GHCi очень хорошо:
func mat l =
if mat == [1,0,0,0] then l
else
let trymat t = if t == 0 then trymat 1 else if t == 4 then error "Not ok!" else l
in l
Когда я добавляю одну новую строку, т.е.
func mat l =
if mat == [1,0,0,0] then l
else
let trymat t =
if t == 0 then trymat 1 else if t == 4 then error "Not ok!" else l
in l
, компилятор злится :
λ> :load code.hs
parse error (possibly incorrect indentation or mismatched brackets)
|
67 | if t == 0 then trymat 1 else if t == 4 then error "Not ok!" else l
| ^
Это, кажется, происходит независимо от того, как я выделяю / заключаю в скобки внутренний блок if
, а также происходит с case
s. Это очень странно, потому что trymat
- полная фиктивная функция: она никогда больше не вызывается! Любая подсказка, почему это происходит, и как я смогу добавить определения функций и case
s и тому подобное в мой код в будущем? Спасибо!