【配置需求】求一个emacs上的优秀的 scheme配置

求一个emacs上的优秀的 scheme配置;
我尝试使用emacs开发scheme这个语言。但是spacemacs上的scheme layer并不好用。我使用了了 ChezScheme这个实现。 scheme的体验远远没有CL layer 用起来那么舒服。
所以不知道各位大神有没有什么推荐。

没有,因为 Scheme 太垃圾。SLIME 已经是 Emacs 插件里的拔尖水准了。

1 个赞

SLIME(SLY)和CIDER都挺好用的,不知为何Geiser用起来手感这么差

1 个赞

Scheme 太垃圾?? 为什么不是特别同意呢~~ 同学!!!
Scheme 的集成开发环境差一点而已。你指的不是语言吧~~ 同学!

别问,问就是辣鸡 :rofl:

2 个赞

就是因为要啥没啥,除了标准定义的有限部分其它大量行为都不统一,所以连个通用的 IDE 都不好做。

1 个赞

我同意要啥没啥~~ 但是不至于到 垃圾的程度。
我问的是你内心对应 它的真实看法~~ 还是说 ”配套设施“才是你的标准?
我更喜欢scheme的宏定义。

syntax-object那套华而不实,写个anaphoric macro都费劲

(defmacro amap (form list) `(mapcar (lambda (it) ,form) ,list))
(define-syntax amap
  (lambda (x)
    (syntax-case x ()
      ((_ form lst)
       (with-syntax ((it (datum->syntax x 'it)))
         #'(map (lambda (it) form) lst))))))

卫生宏的确是好东西,但我觉得是对应非lisp系的语言来说的,这些语言一般都会有各种额外的语法结构,基于语法结构做匹配的确比C那种丢人的文本替换要高明,换到Lisp方言这种手写AST的怪物上,Scheme所谓的syntax object概念除了能少写点累手的gensym以外反而倒退了

2 个赞

我不喜欢所谓 hygienic macro,一是它没有像所声称那样 hygienic,二是要写 opaque & dirty macro 比 defmacro 难用几十倍。说实话我其实不喜欢 macro,而是喜欢 Haskell 那种用 call by need 和 Monad 做 abstract common pattern 的事。

顺带补充一点, C preprocessor 不行究其原因还是因为 preprocessor 是和 compiler 相独立的,这种所谓 lexical macro。而 Lisp macro 实际上是从编译器获得信息的,只不过这种用法直到 ANSI CL 利用得都很有限。hygienic macro 也称不上什么 meta programming 的终极,说白了现在对 meta programming 本身也没多少人研究罢了。

Geiser

Spacemacs 用的就是 Geiser,so……

是吗?我觉得还行。。。

其实我也没觉得有什么大问题,毕竟我没有高亮照样写 ALGOL,就是功能丰富程度还是没法和 SLIME 比。