read-line在clojure REPL中不起作用

时间:2011-08-16 09:25:46

标签: clojure read-eval-print-loop slime

每当我调用clojure函数通过SLIME或普通REPL使用(read-line)获取用户控制台输入时,该函数立即返回。我已经使用了jar我的项目并运行它进行测试,但这显然不是快速或可持续的。

通过REPL工作获得控制台交互是否有一些技巧或者不可能?如果没有,有什么好的解决方法吗?

2 个答案:

答案 0 :(得分:0)

目前似乎没有任何方法可以通过swank-clojure读取控制台输入;调用(read-line)只是在1.4.0-SNAPSHOT中返回nil并在早期版本中挂起。安装1.4.0作为用户级leiningen插件似乎是目前最好的选择。至少REPL会在某个时刻返回你的控制。

答案 1 :(得分:0)

现在可以使用swank-clojure 1.4.0-SNAPSHOT,如果你在swank.core / with-read-line-support中调用read-line,就像这样

(with-read-line-support (println "a line from Emacs:" (read-line))

https://github.com/technomancy/swank-clojure/commit/f4a1eebc4d34f2ff473c4e5350f889ec356f5168