所以我一直在研究Clojure教程,到目前为止它非常有趣。不幸的是,每次关闭我的REPL时,我都会丢失在上一个会话中创建的所有defn
和def
。
因此,为了节省将来的时间,是否有可能让Clojure REPL将我输入的所有内容保存到文件中,以便我可以挖掘出将来需要用的东西?
答案 0 :(得分:7)
我认为大多数人都使用他们的IDE将代码片段发送到REPL,而不是在REPL中进行大量的直接黑客攻击。这样您就可以更好地了解程序的当前状态。
答案 1 :(得分:5)
如果您use Emacs and SLIME,您可以将REPL缓冲区保存到文件中,就像保存任何其他缓冲区一样。
答案 2 :(得分:2)
如果您使用的是类Unix操作系统,则可以使用rlwrap
启动REPL。这将为您提供Ctrl-R,以便以简单的方式从历史记录中访问命令,以及存储历史记录本身。
您只需安装rlwrap
并将其添加到您启动REPL的行,例如rlwrap lein repl
答案 3 :(得分:1)
一些提示:
答案 4 :(得分:0)
这实际上是一个比看起来更难的问题,因为像这样的转储必须考虑符号和变量依赖关系并以正确的符号顺序输出到文件。也就是说,因为代码是数据,所以应该能够编写一个能够执行此操作的函数。