gpt4 book ai didi

emacs - Emacs Lisp 和 Common Lisp 之间的主要区别是什么?

转载 作者:行者123 更新时间:2023-12-03 07:11:55 25 4
gpt4 key购买 nike

我想学习lisp语言,因为我的编辑器是emacs,所以我更喜欢emacs lisp。

有人可以给我一些学习 lisp、emacs lisp 或 common lisp 的建议吗?

这两者之间的主要区别是什么?

最佳答案

有相当多的交叉,特别是在初学者级别,因此无论您从哪个开始,大部分都会转移到另一个。

一些主要区别:

  • ELisp 传统上使用动态作用域规则; Common Lisp 使用词法作用域规则。通过动态作用域,函数可以访问调用函数中声明的局部变量,并且通常已不再受欢迎。从 Emacs 24 开始,Emacs 允许在逐个文件的基础上进行可选的词法作用域(并且核心发行版中的所有文件都将逐步转换)。

  • 动态范围的 ELisp 没有闭包,这使得组合函数和柯里化(Currying)变得困难。有一个 apply-partially 函数,其工作原理与柯里化(Currying)类似。请注意,Emacs 24 中引入的 lexical-let 形式使得可以通过词法作用域生成闭包。

  • 随着时间的推移而建立的许多 Common Lisp 库在 elisp 中不可用。 elisp cl 包提供了一个子集

  • elisp 不进行尾部调用优化。

关于emacs - Emacs Lisp 和 Common Lisp 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com