2016-08-20 3 views
0

Итак, я пытаюсь изучить haskell.
Я получил этот код:Сценарий (Atom Plugin) - Ошибка анализа на входе '='

main = putStrLn "Hello World!" 

И я компиляции с помощью Script плагин для Atom (ведьма в свою очередь, использует Cabal).
И я получаю эту ошибку:

<interactive>:1:6: parse error on input ‘=’ 

И нет ничего напечатаны на консоли.
Что мне не хватает?

Примечание:
Я пытаюсь следовать Happy Learn Haskell Tutorial

+0

Интерактивная среда GHCi не является вполне нормальным Haskell , Для этого требуется синтаксис 'let main = putStrLn 'Hello World!" '. – dfeuer

ответ

0

Оказывается, что пытается запустить кусок Haskell, используя Script без сохранения кода в файл вызывает некоторые странные ошибки (Хотя ни разу не сказал мне, на самом деле, чтобы сохранить файл).

Сохранение кода в файл, однако изменило ситуацию.

Код:

main = putStrLn "Hello World" 

Ошибка:

Top-level binding with no type signature: main :: IO() 

Как всегда, на этот раз я получил результат:

Hello World 
+1

Это не ошибка, это просто предупреждение. Типовые подписи являются необязательными в Haskell (за исключением угловых случаев), но хороший стиль имеет подписи для элементов верхнего уровня. – Cubic

+0

Связанные: http://stackoverflow.com/questions/29538610/should-one-specify-a-type-signature-for-main-or-not-why-why-not – Jubobs

1

Этот код является правильным, если вы кладете его в файл. Я не знаком с этим плагином с атомами, но похоже, что он пытается ввести его через ghci (в основном, Haskell repl), где этот код недействителен.

Вы пытались скомпилировать файл вручную, используя ghc или даже cabal? Он должен работать, если в файле нет ничего плохого.