2024年Clojure调研! 中分享您的想法。

欢迎!请查看关于页面获取更多关于如何使用本站的信息。

+7
REPL

我长时间使用nrepl,但这与使用 clojure.main/repl 创建“子repl”不太兼容。我现在正在使用套接字repl,非常享受子repl再次可用。我主要只是做简单的调用

(clojure.main/repl
 :prompt (fn [] (printf "%s=> " (peek (str/split (str *ns*) #"\."))))
 :read server/repl-read)

人们还用子repl做了什么其他的事情?创建评估的历史文件?将表单扔到数据库中?非常想了解。

5 条回答

+1

这是连接到使用http的clojure.main/repl的代码片段(类似于nrepl的drawbridge)。

wrap-repl 是一个ring处理器。然后在一个正常的clojure.main/repl中调用http-repl并将其连接到远程repl。

我相信代码中的通信部分都已经有了,缺少的环节是关于通过签名请求来安全地访问repl。

https://gist.github.com/hiredman/86aeb916b478d9e57cbce8e0e678babd

+1
0

我使用NightCode的一个分支,名为nightclub,它提供了一个嵌入式的REPL、mini IDE、文件编辑器和项目管理器,以便我为部署的应用程序使用。用户基本上可以得到一个Clojure环境、应用程序的实时脚本以及一个会回显命令到REPL的GUI,以便获得某种交互式学习体验(类似于Excel中的VBA编辑器)。我在受限的环境中受益匪浅,在那里我唯一允许的是uberjar;通过这种设置,我除了应用程序外,还得到了一个不错的Clojure开发环境/脚本/调试设置。

0

我使用它来使用fipp作为我的默认打印机,它比Clojure的默认print/pprint明显快。

(clojure.main/repl
  :caught (fn [e] (fipp.repl/pst e))
  :print  (fn [x] (fipp.edn/pprint x)))
0

似乎没有在特定的clojure.main/repl上实现,但Datawalk是使用子REPL可以做什么的一个很酷的例子。

...