Ошибка ошибки анализа Haskell на входе `= '
Я новичок в Haskell, и после запуска ghci
я попробовал:
f x = 2 * x
и я получил:
<interactive>:1:4: parse error on input `='
который я не понимаю.
Странно, это сработало задолго до этого. Полагаю, что я неправильно сконфигурировал Хаскелла. Переустановка ghc6 не решает проблему.
Для информации, я использую Ubuntu 10.4, а версия ghc6 - 6.12.1-12
Ответы
Ответ 1
В GHCi 7.x или ниже вам нужно let
определить в нем вещи.
Prelude> let f x = x * 2
Prelude> f 4
8
Начиная с GHC 8.0.1, привязки верхнего уровня поддерживаются в GHCi, поэтому OP-код будет работать без изменений.
GHCi, version 8.0.1.20161213: http://www.haskell.org/ghc/ :? for help
Prelude> f x = x * 2
Prelude> f 4
8
Ответ 2
При вводе в исходный файл Haskell
f x = 2 * x
является правильным.
При вводе непосредственно в ghci вам нужно ввести let
в начале строки:
let f x = 2 * x
Ответ 3
Хорошим правилом для использования ghci является то, что любой введенный вами код должен соответствовать семантике do-block; то есть вы можете предполагать синтаксически, что вы программируете в монаде IO (если это новая терминология, не волнуйтесь! Я бы настоятельно рекомендовал прочитать это учебник).
Этот ответ иллюстрирует этот пример примером и может обеспечить более эффективное понимание характера IO и ghci.
Ответ 4
Начиная с GHC 8.0.1 это больше не приведет к ошибке.