LINUX.ORG.RU

Haskell, REPL

 ,


0

3

А вы на хаскле как программируете?
Вот поменяли какую-то функцию и перезапускаете приложение?
Или можно по нормальному через REPL?

★★

Редактирую файл в емаксе, в другом буфере находится REPL. Изменил функцию в файле, сделал C-c C-l, REPL автоматически обновился.

iVS ★★★★★
()

Вот поменяли какую-то функцию

… и C-c C-l.

theNamelessOne ★★★★★
()

хаскле

«Hustle»?

Писать факториалы идеально в ghci. Больше он ни на что не годен, собственно.

Virtuos86 ★★★★★
()

haskell-mode. Хотя персистентных объектов а-ля cl+slime не хватает. Или я что-то не так делаю.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)

Редактирую файл кода в блокноте, иногда если нужен hlint - запускаю ради этого IDEA, но она так долго стартует, что проще все же в блокноте. Поменял код - сэйв, мышкой тык в открытое окно WinGHCi на панели задач, там один тык на кнопку релоад и второй на кнопку ран. Никаких хоткеев и прочих заморочек (да, я не емаксер). Изредка в окне виндового интерпретатора набираю вызов своей или цепочки библиотечных функций - собственно, использую как РЕПЛ.

Ivana
()
Ответ на: комментарий от Ivana

Да, если нужно скомпилировать экзешник - там же по одной кнопке в тулзах (уже прописаны варианты компиляций с разными флагами). Пакеты доставляю кабалл инсталлом также в интерпретаторе (но потом нужен перезапуск).

Ivana
()

aquamacs / emacs + haskell-mode

При перетрансляции Ctrl+C / Ctrl+L (на самом деле, код, скажем так, «интерпретируется» в haskell-mode, а не компилируется как в ghc), перегружается только текущий модуль и все его зависимости. Все довольно быстро происходит. И тут сразу доступен REPL с загруженным текущим модулем.

Идеально подходит при разработке библиотеки. При разработке приложения тоже хорошо подходит, поскольку позволяет тестировать конкретный модуль.

dave ★★★★★
()

А вы на хаскле как программируете?

с удовольствием

поменяли какую-то функцию и перезапускаете приложение?

да

Или можно по нормальному через REPL?

хочешь динамики - пиши на CL

jtootf ★★★★★
()
Ответ на: комментарий от dave

Ну вот у меня допустим запущен веб сервер. Могу я подключится к нему через repl и : 1) Изменить и перекомпилировать функцию вызова сервера. 2) Прибить поток в котором запущен вебсервер, и запустить его заново уже изменной функцией?

Int0l ★★
() автор топика
Ответ на: комментарий от Int0l

Вряд ли. Как посоветовали выше, для этого есть Common Lisp. Кстати, хороший язык, если относится к нему без фанатизма.

В haskell-mode REPL достаточно простой, но очень удобный для того, чтобы по-быстрому проверить какой-нибудь модуль или протестировать примеры. В продакшене обычно запущено бинарное готовое приложение, и сильно вряд ли ты там сможешь что-то менять на-лету, как в CL.

dave ★★★★★
()

Давным давно какой-то неизвестный академик накатал очередную нафталиновую статейку, пучил надбавку к зарплате, купил жене сапоги и благополучно забыл про эту муть. Сто лет спустя лоровская хипстота за каким-то хреном на этом программы пишет. Вообще оборжака.

anonymous
()
Ответ на: комментарий от Int0l

А как? )

Хаскелл компилируется в бинарный код с потерей большей части информации об исходном в результате оптимизаций. Можно, конечно, запустить интерпретатор и как-то к нему подключиться, но ценой этого будет огромная потеря производительности.

hateyoufeel ★★★★★
()
Ответ на: комментарий от anonymous

А как надо работать? Код поменял и все приложение перезапускать? xD В наше время что бы так делать надо сильно упороться.

Int0l ★★
() автор топика
Ответ на: комментарий от Ivana

Ну так LUA, dll и т.п. не просто так придумано.

Int0l ★★
() автор топика
Ответ на: комментарий от Int0l

сейчас 2016, а не 1978. Впрочем и lua можно в haskell запустить и so подгрузить и вызывать и безопасно выгружать, да даже .o можно, но с большим трудом, но непонятно при чем тут repl.

qnikst ★★★★★
()
Последнее исправление: qnikst (всего исправлений: 2)
Ответ на: комментарий от qnikst

А я разве писал что сегодня 1978?

Int0l ★★
() автор топика
Ответ на: комментарий от Int0l

При том что live перезагрузка кода и repl были связанными вещами примерно в 1978 году.

qnikst ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.