March 30, 2019

REPL tips

從今年 2 月開始,接了一個公司內部應用軟體的專案開發,我用 clojure + luminus + datomic 來實作。不知不覺也就每天寫 clojure 的 REPL 近兩個月了。每天玩 REPL 之後,很快就發現一些過去我用 REPL 的盲點。

沒有善用 clojure.repl/pprint

沒有善用的主要原因,自然是因為在 fireplace.vim 的環境下,一開始我沒有特別做一些設定時,直接做 cpp, cqp 之類 REPL 操作,並不會有 pretty print 的輸出。後來,我總算是下定決心,把 leiningen profiles 設定好,加入了一個叫 vinyasa 的 leiningen dependency

設定好之後,就可以用 (>pprint ...) 來做 pretty print 。

沒有善用 *1 *2

過去,我在做 REPL 操作時,常常做的事情是這樣子:

(f1 a b c) => 試到結果正確

(f2 (f1 a b c) d) => 也是試到結果也正確

(f3 (f2 (f1 a b c) d) e) => 然後指令就愈來愈長, 愈來愈難下

其實不用這樣子麻煩,第二次可以這樣子下指令 (f2 *1 d)

Tags: tips repl