标签: read-eval-print-loop

带有命令行历史记录和制表符完成的mit-scheme REPL

我正在阅读SICP,我正在mit-scheme通过自制软件安装在我的os x 10.8笔记本电脑上.

一切都像宣传的那样工作,但是我很容易被REPL的标签完成和命令行历史记录所破坏,如Python和Node.js这样的运行时.

我不是在寻找任何重要的东西,但是这些功能在现代REPL中很容易实现(它只是一个简单的 Python 启动文件,可以在Node.js中用几行实现).

有没有一种简单的方法可以在没有重型应用程序或必须切换到emacs(即在xterm终端)中的mit-scheme REPL中获取选项卡完成和命令历史记录?

read-eval-print-loop mit-scheme

22
推荐指数
1
解决办法
2378
查看次数

如何在SLIME REPL中停止正在运行的操作?

有没有办法在SLIME REPL中停止正在运行的操作?

Clojure SLIME的人显然有一些方法可以做到这一点,那么在普通的Common Lisp中呢?

谢谢/ Erik

emacs clojure common-lisp slime read-eval-print-loop

21
推荐指数
1
解决办法
3873
查看次数

Prolog中的Hello世界

我正在试图找出如何在Prolog中编写Hello World程序.我只是想创建一个像这样运行的程序:

> ./hw
Hello, world!
>
Run Code Online (Sandbox Code Playgroud)

问题是我可以找到的每个例子都在REPL中工作,如下所示:

?- consult(hello_world).
% hello compiled 0.00 sec, 612 bytes

Yes
?- hello_world.
Hello World!

Yes
Run Code Online (Sandbox Code Playgroud)

即使编译Prolog的例子也是如此:程序仍然只是落入REPL.对于"通用"语言来说,这显然没什么用处.那么,我该如何编写传统的Hello World?

prolog read-eval-print-loop

21
推荐指数
2
解决办法
1万
查看次数

REPL Web环境

我正在寻找一个可以在网页上执行并且服务器可以做出反应的REPL系统.有没有什么(我认为它必须使用Javascript/AJAX)?如果有一个PHP实现,它会更加棒,但是现在我只是在寻找某种实现.

javascript php ajax jquery read-eval-print-loop

21
推荐指数
2
解决办法
7944
查看次数

在Haskell应用程序中创建Haskell REPL

我正在尝试在我的一个Haskell应用程序中嵌入一个Haskell REPL.我们的想法是,默认情况下只加载Haskell库的一个子集,加上我自己的一组函数,用户可以使用它们来与环境进行交互.

为了解决这个问题,我知道一种方法是创建一个(迷你)Haskell解析器+求值器并将我的mini-Haskell解析器的函数映射到实际的Haskell函数,但我确信有更好的方法来做到这一点.

有没有一种漂亮而干净的方法来使用Haskell为Haskell构建REPL?

parsing haskell read-eval-print-loop

20
推荐指数
1
解决办法
1972
查看次数

默认情况下,在Python REPL中打印漂亮

如何在默认情况下在REPL上启用漂亮打印?

目前我通过使用pprint.pprint()功能来做到这一点.

>>> pprint.pprint(data)
{'SHIP_CATEGORY': '',
 'SHIP_QUANTITY': 1,
 'SHIP_SEPARATELY': 0,
 'SHIP_SUPPLEMENT': 0,
 'SHIP_SUPPLEMENT_ONCE': 0,
 'THUMBNAIL': ''}
Run Code Online (Sandbox Code Playgroud)

但我希望默认打印漂亮

>>> data
{'SHIP_CATEGORY': '',
 'SHIP_QUANTITY': 1,
 'SHIP_SEPARATELY': 0,
 'SHIP_SUPPLEMENT': 0,
 'SHIP_SUPPLEMENT_ONCE': 0,
 'THUMBNAIL': ''}
Run Code Online (Sandbox Code Playgroud)

我试过了什么?
我在谷歌搜索.没有找到任何大多数结果指向pprint模块

python read-eval-print-loop

20
推荐指数
2
解决办法
2022
查看次数

有没有办法检查bash脚本是否完整?

我正在尝试在bash中实现REPL(read-eval-print循环).如果这样的事情已经存在,请忽略以下内容并用指针回答这个问题.

我们以此脚本为例(命名test.sh):

if true
then
  echo a
else
  echo b
fi
echo c
Run Code Online (Sandbox Code Playgroud)

我想要做的是逐行阅读这个脚本,检查我到目前为止读的是否是一个完整的bash表达式; 如果它是完整的,eval它; 否则继续阅读下一行.下面的脚本有希望地说明了我的想法(尽管如此).

x=""
while read -r line
do
  x=$x$'\n'$line  # concatenate by \n
  # the line below is certainly a bad way to go
  if eval $x 2>/dev/null; then
    eval $x  # code seems to be working, so eval it
    x=""  # empty x, and start collecting code again
  else
    echo 'incomplete expression'
  fi
done < test.sh
Run Code Online (Sandbox Code Playgroud)

动机

对于bash脚本,我想将其解析为语法上完整的表达式,计算每个表达式,捕获输出,最后标记源代码和输出(例如,使用Markdown/HTML/LaTeX/...).例如,对于脚本

echo …
Run Code Online (Sandbox Code Playgroud)

bash shell read-eval-print-loop

20
推荐指数
1
解决办法
1426
查看次数

安装cider-nrepl

我已经安装了CIDER 0.7.0,现在当我在Emacs(via M-x cider-jack-in RET)中启动时,我收到以下警告:

警告:CIDER的版本(0.7.0)与cider-nrepl的版本(未安装)不匹配

我已经下载了cider-nrepl,发现它包含闭包代码,而不是emacs lisp代码.自从我今天开始探索Clojure世界,并且项目页面上没有安装说明,你能告诉我如何安装cider-nrepl?

lisp emacs clojure cider read-eval-print-loop

20
推荐指数
1
解决办法
5682
查看次数

Lisp是REPL唯一的语言吗?

除了Lisp(ruby,scala)之外还有其他语言表示他们使用REPL(读取,评估,打印,循环),但不清楚REPL的含义是否与Lisp中的相同.Lisp REPL与非Lisp REPL有何不同?

lisp programming-languages scala read-eval-print-loop

19
推荐指数
3
解决办法
8997
查看次数

启动node.js repl的脚本

有没有办法配置node.js的repl?我想在repl启动时自动要求jquery和下划线.是否有一个文件(noderc?)node.js在启动repl时加载?

Python中的等价物是用以下内容编辑~/.ipython/ipy_user_conf.py:

import_mod('sys os datetime re itertools functools')
Run Code Online (Sandbox Code Playgroud)

startupscript startup rc node.js read-eval-print-loop

19
推荐指数
4
解决办法
2927
查看次数