我正在阅读SICP,我正在mit-scheme通过自制软件安装在我的os x 10.8笔记本电脑上.
一切都像宣传的那样工作,但是我很容易被REPL的标签完成和命令行历史记录所破坏,如Python和Node.js这样的运行时.
我不是在寻找任何重要的东西,但是这些功能在现代REPL中很容易实现(它只是一个简单的 Python 启动文件,可以在Node.js中用几行实现).
有没有一种简单的方法可以在没有重型应用程序或必须切换到emacs(即在xterm终端)中的mit-scheme REPL中获取选项卡完成和命令历史记录?
我正在试图找出如何在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?
我正在寻找一个可以在网页上执行并且服务器可以做出反应的REPL系统.有没有什么(我认为它必须使用Javascript/AJAX)?如果有一个PHP实现,它会更加棒,但是现在我只是在寻找某种实现.
我正在尝试在我的一个Haskell应用程序中嵌入一个Haskell REPL.我们的想法是,默认情况下只加载Haskell库的一个子集,加上我自己的一组函数,用户可以使用它们来与环境进行交互.
为了解决这个问题,我知道一种方法是创建一个(迷你)Haskell解析器+求值器并将我的mini-Haskell解析器的函数映射到实际的Haskell函数,但我确信有更好的方法来做到这一点.
有没有一种漂亮而干净的方法来使用Haskell为Haskell构建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模块
我正在尝试在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) 我已经安装了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(ruby,scala)之外还有其他语言表示他们使用REPL(读取,评估,打印,循环),但不清楚REPL的含义是否与Lisp中的相同.Lisp REPL与非Lisp 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)