【发布时间】:2014-07-11 13:42:52
【问题描述】:
LISP 有 setf 函数来为变量赋值。现在我一直想知道函数的名称:set 部分很明显,但f 后缀代表什么?
【问题讨论】:
-
+1 这是一个有趣的问题。这本身不一定是一个编程问题(因为它不是关于如何使用 setf),但它不是一个有明显答案的问题,理解命名约定和历史通常可以帮助程序员的心智模型的语言。 (顺便说一下,
setq中的q更容易。在旧的 Lisps 中,使用符号的symbol-value更为常见,最好将(set 'foo …)缩写为(setq foo …)(所以 q 代表quote) .) -
感谢您的精彩评论 :-))。对于我作为 LISP 初学者来说,有些名字很难掌握,另一个例子是
evenp和oddp:我只是想知道p代表什么,如果你真的理解它们的名字,它肯定有助于记住函数(因此他们的意思)。 -
P 代表“谓词”
-
您可能对cliki.net/Naming+conventions 感兴趣,但请注意它有“f in setf 的广义字段”
-
再次感谢您指出这一点 :-)
标签: lisp common-lisp