我在Common Lisp中完成了大部分的开发工作,但是有些时候我想切换到Scheme(在Small Pieces中读取Lisp,当我想要使用continuation时,或者当我想在Gauche中执行一些脚本编写时,例).在这种情况下,我不舒服的主要原因是我没有史莱姆(是的,你可以称我为瘾君子).
Scheme最接近史莱姆的是什么?具体来说,我最感兴趣的是:
Emacs集成(这一点很明显;))
体面的选项卡完成(理想情况下,cwcc TAB应扩展为call-with-current-continuation).它甚至可以是基于符号表的(即,它不必注意我在a let
中定义的函数).
迷你缓冲区中的函数参数提示(如果我已键入(map |)
(光标位置由|
)表示),我想(map predicate . lists)
在迷你缓冲区中看到
将表格发送给口译员
与调试器集成.
我已经通过降低重要性来命令这些功能.
我的Scheme实现选择是:
的MzScheme
的Ikarus
左岸
中的bigloo
鸡
如果它至少与它们一起工作会很棒.
SLIME的contrib目录似乎有MIT Scheme和Kawa的SWANK实现.
Geiser为Scheme提供了良好的环境.除了Guile和Racket之外,最新版本现在还可以与Chez Scheme,Chibi Scheme,Chicken Scheme以及旧备用MIT Scheme互动.我建议通过Melpa 安装它,特别是为了获得处理更广泛的REPL选择的最新版本.
您也可以考虑方案完成:
http://www.emacswiki.org/cgi-bin/wiki/SchemeComplete
它基本上提供了tab-completion.
评论员说:"DrScheme IDE具有emacs密钥绑定",它是一个备受推崇的IDE,具有您明确列出的许多功能.
此外,Emacs的方案模式提供了SLIME的一些功能 - 集成的REPL,能够将表单发送到该REPL并加载整个文件.据我所知,对于你已经列出的方案,通常没有等效的方法可以远程连接到运行映像(相对于Emacs缓冲区中的方案repl),或者调试器集成.
好吧......我会说Slime for scheme是最接近Slime for Scheme的东西;)
对于我使用mzscheme的工作,我通常使用cmuscheme + quack,几乎提供了我在开发过程中所需要的东西.
Bigloo带有非常强大的蜜蜂模式.
对于gauche,您可以使用GCA包,它提供名称完成,功能描述的显示和代码模板的插入
更新:我在我的网站上发布了有关Scheme + Emacs集成的文章
您可以使用swank-chicken将鸡肉计划与粘液一起使用.
我建议看看geiser模式,但它现在只支持Racket和Guile,我在你的列表中没有看到.