lisp - 1-和1+的历史

标签 lisp common-lisp increment decrement

我最近在 freenode 上的#lisp,有人提到 '1-' and 1+ 的存在.了解这些功能让我想知道它们为什么存在。它们最初是出于性能原因而创建的,例如 C/C++ 的相关 --++ ,还是有其他原因?有谁知道这些函数如何成为标准的历史?

(如果这个问题更适合其他站点(例如程序员),请将其迁移到那里。谢谢。)

最佳答案

我不认为它们在 Common Lisp 中有性能原因(尽管在 C 中,例如,n++ 可能比 n = n + 1 运行得更快) .您的链接底部有一条注释:

(1+ number) ==  (+ number 1)
(1- number) ==  (- number 1)

因此,通常可以使用+1+ 来获得相同的结果。我认为这些功能存在的真正原因是方便。就个人而言,我发现自己加 1 的次数比任何其他数字都多。

递增和递减函数几乎可以在每种编程语言中找到(据我所知),因此在 Common Lisp 中有一些是合乎逻辑的。

附言我怀疑它是否真的切合主题并且我的回答是否有用,所以它是社区 wiki ;-)

关于lisp - 1-和1+的历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25930082/

相关文章:

lisp - SBCL "subst"效率

macros - Lisp:宏可以递归吗?

graph - Lisp - 编写一个计算图节点标签的函数

linux - 如何在普通的 lisp 中设置网络服务器?

lisp - 在 maxima 中使用 lisp 代码

packages - CLisp : "use-package" resolving conflicts non-interactively

php - mysql查询自增

emacs - 如何在 smartparens 中更改 sp-navigate-reindent-after-up 的值

php - 如何获取兄弟div的html值

c - 为什么这些构造使用前后递增的未定义行为?