Ответ 1
Я думаю, что большинство людей работают, используя свою IDE для отправки фрагментов кода в REPL, вместо того, чтобы делать много прямого взлома в REPL. Таким образом, вы лучше понимаете текущее состояние программы.
Итак, я работал над учебником Clojure, и это довольно забавно. К сожалению, каждый раз, когда я закрываю REPL, я теряю все defn
и def
, которые я создал в предыдущем сеансе.
Итак, чтобы сэкономить время в будущем, возможно ли, что Clojure REPL сохранит все, что я набрал в файл, чтобы я мог выкопать то, что мне нужно для использования в будущем?
Я думаю, что большинство людей работают, используя свою IDE для отправки фрагментов кода в REPL, вместо того, чтобы делать много прямого взлома в REPL. Таким образом, вы лучше понимаете текущее состояние программы.
Если вы используете Emacs и SLIME, вы можете сохранить буфер REPL в файл так же, как сохранение любого другого буфера.
Если вы используете Unix-подобную операционную систему, вы можете запустить свой REPL с помощью rlwrap
. Это даст вам Ctrl-R для легкого доступа к командам из истории, а также для хранения самой истории.
Вам просто нужно установить rlwrap
и добавить его в строку, где вы запускаете REPL, например. rlwrap lein repl
Несколько советов:
На самом деле это сложнее, чем кажется, потому что такой дамп должен учитывать зависимости символов и варов и выводить их в файл в правильном порядке символов. Тем не менее, поскольку код - это данные, нужно иметь возможность написать функцию, которая делает это.