Lisp解析器如何处理list?
如果这个list前面有单引号,就会直接将该list返回(不包含单引号);
如果没有单引号,则会将这个list的第一个元素作为函数名去查找,如果找到,则调用该函数,如果找不到则返回错误消息。
一般按照从左到右的顺序一个一个处理list中的元素
如果list内部有嵌套,解析器总是从最里层的那个开始处理。
如何求值?
求值的结果总是返回一个值,如果求值错误,也会返回错误信息
内部list的值被求出后,用于替换该list所在的位置,作为一个元素
如果对一个数字求值,将得到数字本身
如果对一个没有括号的符号(非数字)求值,解析器会认为是对一个变量求值
如果对一个有括号的,当然是对一个list求值啦。参考前面一节'...如何处理list'
C-x C-e的等价命令是:eval-last-sexp 求距离最近的一个symbol expression的值
分享到:
相关推荐
elisp-koans:Emacs Lisp Koans-通过测试驱动的开发学习elisp
elisp-def:查找Emacs Lisp定义
Elisp API演示 在Ch f mapcar显示mapcar的Elisp演示:用法要将elisp演示注入*Help* ,例如Ch f ( Mx describe-function ),请使用( advice-add 'describe-function-1 :after # 'elisp-demos-advice-describe-...
elisp-lint:Emacs Lisp的基本皮棉
摩尔:Elisp packrat解析器生成器
Emacs-Elisp-Programming, 有关编程Elisp和Emacs文本编辑器自定义的教程 Emacs - 编程和自定义概述Emacs不需要任何演示文稿。 Emacs提供了一款软件,它提供了可以编程文本编辑器。电子邮件阅读器。文本浏览器。图片 ...
elisp.js 这是从Emacs Lisp到Javascript的翻译器。演示版为什么? 目标之一是了解v8上的Emacs Lisp可以有多快。 这可能是将来在浏览器中运行Emacs软件包的基础(可能使用作为Emacs运行时的UI)。 当然,学习Emacs ...
由Magit的维护者编译的与Git相关的Emacs软件包的列表。 目的是列出所有存在的此类软件包。 请告诉我有关我错过的包裹的信息。 通过克隆此存储库及其子模块,只需执行以下操作即可快速获得这些软件包: git clone ...
这个库是我为我的另一个项目 haskell-emacs 解析 elisp 的小意图。 目标是能够与haskell emacs 提供的haskell 函数一起计算haskell 端的所有纯elisp 函数。
Emacs Lisp解析器 一个简单的软件包,用于从Python解析Emacs Lisp表达式。 简单用法 >> > import elisp >> > numbers = elisp . loads ( "(1 2 3)" ) >> > numbers . car 1 >> > numbers . cdr . cdr . car 3 >> > ...
此代码将用于其Earley算法解析器和代码组织。 我有一个中实现的项目。 它需要大量的工作,虽然更换Python代码。 这是一个非常早期的阶段,但是经过一番挥霍,代码似乎可以涵盖所有内容。 我们可以反编译的各种...
Elisp维护者以及如何支持他们 这是Emacs软件包,其项目以及如何支持它们的维护者的列表。 显然这是非常不完整的,我只快速添加了一些维护者,他们的捐赠页面很容易^ 1,并且为我自己添加了更长的条目,以展示我希望...
具有Readline支持的Emacs ...cc -shared -fpic -lreadline elisp-repl-readline.c -o elisp-repl-readline.so 安装 : M-x package-install e2ansi 准备load-path : ( push " ~/src/elisp-repl/ " load-path) 加
elisp 资料 http://www.gnu.org/software/emacs/manual/elisp.html
yaml.el yaml.el是用Emacs List编写的YAML解析器,没有任何外部依赖关系。它提供类似于Emacs JSON解析实用程序的接口。提供的功能如下: (yaml-parse-string string &rest args)接受以下关键字args: :object-type...
Emacs Lisp CI的GitHub动作 :scroll: 为Emacs Lisp软件包提供零配置CI解决... 有关与Emacs Lisp CI的其他解决方案的更全面比较,请参阅文件。 :shopping_cart: 支持的支票 :: MELPA所需的大多数检查 ::将文件加载
所有阻塞都会冻结Emacs的显示,但是计时器和I / O将继续运行。 请谨慎使用。 用法 承诺有deliver和retrieve方法。 ; ; Make promise ( defvar p (make-promise)) ; ; Deliver a value to the promise in 5 seconds...
该库使用C模块进行长/双/浮点解析,原则上可以用纯Emacs LISP IEEE-754实现代替C模块,但这工作量很大,也不是一件有趣的事,因此您会陷入困境。 C模块:) 它可以当前阅读这里找到的示例 https://wiki.vg/NBT 以及...
让我们记录一下Emacs Lisp字节码或LAP(Lisp汇编程序)指令。 您可以找到易于查看的PDF。 注意:通常,我会使用项目的评分来衡量有机会时可能从事的工作。 具体来说,对于这个项目获得的每一个支持,我都要多填写...
Cedille编程语言 请参阅以获取...:(临时)Cedille标准库parser/ :用于Cedille语言的解析器(用Haskell编写) se-mode/ :Emacs“结构化编辑模式”的Elisp源代码src/ :Cedille源代码(用Agda编写)执照麻省理工学院