Как запустить приложение haskell в emacs - режиме haskell?

Код в helloworld.hs:

main = do
putStrLn "Привет, как тебя зовут?"
name ‹- getLine
putStrLn (" Привет "++ name ++", ты молодец! ")

Приложение протестировано в Терминале:

optimight @ optimight: ~ $ ghc --make helloworld
[1 из 1] Компиляция Main (helloworld.hs, helloworld.o)
Связывание helloworld ...
optimight @ optimight: ~ $ ./helloworld
Привет, как тебя зовут?
Джон
Привет, Джон, ты молодец!

helloworld.hs загружается в emacs - основной режим haskell:

GHCi, версия 7.4.1: http://www.haskell.org/ghc/:? для справки
Загрузка пакета ghc-prim ... связывание ... выполнено.
Загрузка пакета integer-gmp ... связывание ... выполнено.
Загрузка базы пакета ... связывание ... выполнено .
Prelude>: load "/home/optimight/helloworld.hs"
[1 из 1] Компиляция Main (/home/optimight/helloworld.hs, интерпретируется)
Хорошо, модули загружены: Main.
* Главная>

Теперь Как (какова процедура?) Протестировать его в среде режима emacs - haskell? (Я считаю, что пока я использую режим emacs - haskell, не должно быть необходимости переключаться на терминал .)


person Optimight    schedule 29.07.2012    source источник
comment
Ваш вопрос в том, как использовать REPL (прочтите цикл печати eval) для Haskell под emacs.   -  person Basile Starynkevitch    schedule 29.07.2012
comment
@Basile Starynkevitch: Хорошо, а как использовать REPL для Haskell под emacs?   -  person Optimight    schedule 29.07.2012
comment
Просто введите main в приглашении ghci внутри Emacs или любой другой функции, которую вы хотите протестировать.   -  person Sarah    schedule 29.07.2012


Ответы (1)


Чтобы сделать что-то похожее на то, что вы делали в командной строке, вам нужно загрузить свою программу в ghci (что вы уже сделали), а затем вызвать метод main (что вы можете сделать, просто набрав main в командной строке).

person Nicolas Dudebout    schedule 29.07.2012
comment
Есть ли способ отправить main в GHCI нажатием клавиши? (без потери фокуса из окна редактирования) - person oshyshko; 02.09.2014
comment
... нашел решение здесь stackoverflow.com/questions/13213717/ - person oshyshko; 02.09.2014