1-和1+的历史

Fah*_*tha 3 lisp common-lisp increment decrement

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

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

Mar*_*ark 6

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

(1+ number) ==  (+ number 1)
(1- number) ==  (- number 1)
Run Code Online (Sandbox Code Playgroud)

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

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

PS我怀疑这是真的在主题,我的答案是有用的,所以它是社区维基;-)

  • @Faheem Mitha:1+和1-而不是像维基百科页面那样增加和减少运算符.在Common Lisp中,这些是INCF和DECF. (7认同)