我一直在用Clojure开发游戏,其中一个让我非常兴奋的事情是热代码交换。
我使用了Swank Clojure和带有lein-swank
插件的Emacs。
我的主要问题是打字错误。比如我更新了一个函数,犯了个小错误,然后按下Ctrl-C Ctrl-C将其发送到REPL:
(if (> (rand) .5) (println "yay") (println "boo"))
(我应该写0.5
而不是.5
。)
在这种情况下,整个程序将会崩溃,我需要重新启动整个程序。热代码交换很棒,但如果我连一个小错误都不能犯,那还有什么意义呢?
那么这里的工作流程到底是什么?我有没有漏掉什么?或者有没有办法使Swank Clojure更能够抵抗这些小错误呢?(我想最好的方法就是重置到以前的工作状态,尽管可能有点困难。)
谢谢!