【发布时间】:2011-10-06 03:45:13
【问题描述】:
我注意到各种 Lisp(至少是 Common Lisp 和 Emacs Lisp)中的很多示例,其中两个或多个函数具有相同的名称,但尾随数字除外。例如,Emacs Lisp 有eval-last-sexp 和eval-last-sexp-1。它还有print 和prin1。这似乎是一种普遍的做法,但人们学习编程的第一件事就是给函数赋予唯一且描述性的名称。这种做法从何而来?
【问题讨论】:
-
嗯。我想这已经足够久了,更多描述性函数名称所需的额外字节实际上可能很重要?
-
当然可以。此外,这种想法比今天更加“狂野西部”。
-
约定是为辅助函数添加数字后缀。这是在命名空间等出现之前;像 foo-1 这样的函数名称会暗示“foo 是我的主要函数,我之所以存在,是因为实现需要两个函数”。一个原型案例是一个递归函数,其中 foo 是入口点,但真正的工作是由 foo-1 递归完成的。
-
...我猜这可能也是
prin1的由来,后来证明它本身就很有用。
标签: function lisp naming-conventions elisp