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