2016-02-27 67 views
1

如何爲代碼可重載的Clojure創建REPL?Reloadable Clojure REPL

我可以創建一個新的項目,並得到一個REPL運行起來:「你好,世界」

lein new app stack 
cd stack 
lein repl 
(-main) 

做好以上應該得到你。

我想留在REPL中,將代碼更改爲println「你好夥伴!」,然後再只是(-main)。自動重新加載或(甚至可能更好)簡單的手動重新加載(例如使用像(r)這樣的命令)會使環境完整。

它似乎與lein我已經進入正確的命名空間(任何命名空間,但用戶命名空間,然後你必須(in-ns 'some-ns)是正確的命名空間!)。唯一未答覆的部分是代碼重新加載 - 手動或自動。

碰巧我以前問過如何用boot來做到這一點。

回答

2

對於手動重裝你可以使用同樣的伎倆,張貼在開機的答案,這是有一個函數,它重新加載爲您提供:

(defn r [] (require 'stack.core :reload)) 

一旦上述功能是stack.core命名空間的一部分,你可以從REPL中調用它。很簡單 - 命名空間stack.core有一個函數,它可以重新加載自己。

從編輯器中修改代碼,重新裝入(r),然後再次運行...