gpt4 book ai didi

emacs - elisp 表达式 (1+ (buffer-size)) 和 (+ 1 (buffer-size)) 是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:41 24 4
gpt4 key购买 nike

我是 elisp 的新手,刚刚开始学习它。我在文档中看到了如下表述:

(1+ (buffer-size))
(+ 1 (buffer-size))

它们是什么意思?据我所知,elisp 使用前缀表示法,所以第二个应该是正确的。但是它们都可以无误地执行。第一个来自 point-max 函数的文档。

谢谢。

最佳答案

token 1+ 是一个标识符,表示一个符号。此符号具有作为函数的绑定(bind),因此 (1+ arg) 表示“使用 arg 的值调用 1+ 函数作为它的参数。1+ 函数返回 1 加上它的参数值。

语法 (+ 1 arg) 是实现该效果的另一种方式。这里的函数用符号 + 命名。 + 函数接收两个相加的参数。

在当今流行的许多主流编程语言中,标记化规则使得 1+1 + 之间没有区别:它们都表示后跟一个数字常量通过 + 标记。 Lisp 标记化是不同的。 Lisp 家族中的语言通常支持可以包含数字和非字母数字字符的标记。我正在查看 Emacs Lisp 引用手册,但没有看到有关 read 函数用于将打印表示形式转换为对象的逻辑的部分。通常,“Lispy”标记化行为是这样的:首先扫描标记,而不考虑它基于哪种类型的标记,累积作为有效标记成分的字符,在不是标记成分的字符处停止。例如,当输入为 abcde(f 时,将提取的标记为 abcde( 字符终止标记(并保留在输入流)。然后,根据给定的 Lisp 方言的规则,重新检查和分类生成的字符 block abcde,根据其外观将其转换为对象。方言,我们可以广泛地依赖所有字母字符的标记来表示一个符号,以及所有数字的标记(可能带有前导符号)来表示一个整数。1+ 有一个尾随 + 但是,这是不同的!

关于emacs - elisp 表达式 (1+ (buffer-size)) 和 (+ 1 (buffer-size)) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37261565/

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