Будет несправедливо умолчать...
Из аськи
в лиспе как бывает?
4 варианта в принципе.
1. переопределить одну ф-ю. Т.е., делаешь что-то в repl, выясняешь, что что-то не так. Идёшь в ф-ю, редактируешь её (прямо в исходнике), нажимаешь C-c C-c, она переопределяется.
Второй вариант - большая степень поражения. То же, но после редактирования нажимаешь C-c C-k и "пересобирается" один файл, в котором твоя ф-я. Если есть тесты прямо в нём (я так люблю), то они тоже прогоняются и я делаю, чтобы была ошибка компиляции, если тест не прошёл
это удобно. Тем более, тесты одновременно являются примерами т.е., тест нахоятся рядом с определением.
Третий вариант - ещё большая степень поражения. Пересборка системы. Cистема - это на самом деле аналог "проекта" в средах типа Delphi или Visual Studio. Но у тебя одновременно загружено несколько взаимовязанных проектов. Пишешь
(asdf::! :имя-системы-включающей-твой-файл)
и пересобирается эта система и всё, что от неё зависит. Чтобы это случилось, у тебя должны быть заданы файлы .asd с описанием взаимосвязей, что-то типа makefile
но опять, только часть кода перекомпилируется. И наконец, если наступил полный пц, то выходишь из лиспа и заходишь заново. T.е., видишь, очень высокая степень гибкости в этом направлении. И тяжело на самом деле без неё, если привык. Потому что при маленькой аварии ты не теряешь значения переменных, коннекты к СУБД, запущенные сервисы и т.п. Например, при отладке веб-приложения я переопределял только один видгет (класс) или один метод и дальше просто делал в браузере refresh. При этом сервер не рестартовал, новая сессия не начиналась. Конечно, это не всегда возможно, но довольно часто.