我想知道是否有REPL不是特定于语言的。我花了很多时间浸泡在REPL中(主要用于Clojure,Scala和Haskell),捆绑的那些都或多或少地让我感到沮丧。似乎REPL的工作非常通用:
我不明白为什么不应该有一些与语言无关的REPL,但我一直无法找到这样的东西。在我理想的REPL中我想要的一些东西:
更乐观
这是否存在?
答案 0 :(得分:31)
Bash对C-r
一无所知:它使用了readline,它使用了readline,以及向上箭头历史记录。听起来你正在寻找的REPL是readline吗?只需在rlwrap中输入你想要类似REPL的行为的命令(如果你没有它就安装它 - 它很棒),你应该好好去。
$ rlwrap java -jar clojure.jar
答案 1 :(得分:5)
Scala 2.9 REPL将具有CTRL-R反向搜索支持。夜间建筑已经有了。一段时间内已经有了情境感知标签完成(尽管可以改进)。
将scala与rlwrap
一起使用时,请使用 -Xnojline 标记:
rlwrap scala -Xnojline
这可以防止jline干扰rlwrap。然后rlwrap可以自由地使用readline来实现光标运动和历史记录,但这是在解释器看到该行之前,你将不会有语言感知完成。
我希望Scala REPL能够得到改进。
所以我可以梦想有一天我会在Scala REPL中拥有IDE级别的功能。实际上,它需要大量的努力,并且添加这些功能肯定比提高eclipse支持的优先级低......除此之外,在eclipse中添加REPL支持可能更有意义。
答案 2 :(得分:2)
虽然严格来说不是REPL,Seco提供了一个笔记本风格的shell,可以使用JSR-223绑定来评估任何语言的表达式。这个rapidly growing list包括Javascript,Scheme,Python,Ruby,Clojure,Groovy和Prolog等语言。
Seco的灵感,即Mathematica笔记本前端,原则上可以用任何语言评估表达式,尽管some work需要这样做才能实现。