как редактировать и запускать код PLAI в Emacs с помощью DrRacket 5.2.1

Я изучаю PLAI. Сейчас я уже запускаю код главы 3. в DrRacket (с #lang plai), но я новичок в DrRacket. Могу ли я редактировать и запускать код только в Emacs?


person abelard2008    schedule 14.07.2012    source источник


Ответы (2)


Директива #lang plai будет работать в обычных файлах Racket вне DrRacket. В вашей установке Racket должен быть исполняемый файл racket, который вы можете использовать для их запуска. Попробуйте geiser, если вам нужен пакет emacs, упрощающий запуск программ Racket. Quack также полезен.

В общем, см. статью руководства по использованию emacs с Racket. Вы также можете начать читать руководство с начала, где оно начинается с объяснения того, как запустить Racket. .

person Asumu Takikawa    schedule 14.07.2012
comment
Я уже установил Quack, и моя версия DrRacket 5.2.1, но я не знаю, как заставить работать директиву #lang plai, вы можете мне помочь? Спасибо - person abelard2008; 14.07.2012
comment
Вы можете просто запустить исполняемый файл racket в командной строке с файлом, который вы пишете (с #lang вверху). Если вы используете Geiser, есть сочетание клавиш для запуска содержимого буфера. - person Asumu Takikawa; 14.07.2012

Проблема, с которой вы столкнетесь с Geiser, заключается в том, что "C-x C-b" (geiser-eval-buffer) не будет работать, если в вашем коде есть директива #lang.

У этого вопроса есть несколько обходных путей для Geiser. В качестве альтернативы вы можете использовать racket-mode, который призван воспроизвести в Emacs возможности DrRacket, где основное внимание уделяется (повторному) запуску кода или тестов с чистого листа, а не постепенному выполнению REPL. (Философию, стоящую за этим, см. в статье Маттиаса Феллейзена сообщение в блоге.)

(Примечание: рэкет-режим по-прежнему включает привязки для отправки текущего региона буфера или секспсов в REPL, просто нет специальной поддержки переключения модулей и пространств имен. Которую, особенно в начале конца, многие все равно не пропустят .)

person Davor Cubranic    schedule 06.08.2015