对于修改一个或多个参数的函数,是否有一种广泛接受的 Common Lisp 命名约定?

问题描述 投票:0回答:1

在 CL 中,我们有

incf
setf
命令式函数。 方案使用感叹号(例如
set!
vector-set!
等)但是 CL 程序员使用什么约定(如果有的话)?

common-lisp imperative
1个回答
0
投票

没有共同的约定。 Google Common Lisp Style Guide(一种有用的 CL 风格资源)对此没有任何说明。

Common Lisp 确实有一个约定,即在库函数的某些变体前面加上

n
来修改其参数,例如 nconcnbutlastnreversensubstitute 等。这些函数被理解为“nonconsing”,因为他们不修改他们的列表参数。将其作为惯例可能是有意义的,并且会被普遍理解。

您可以使用感叹号,这可能会很清楚,但有些人会反对这种做法。

!
字符是 Common Lisp 标准保留给程序员的。然而,这可能会困扰您,例如,如果您使用的库使用 !
 来定义读取器宏(这是保留此字符和其他几个字符的初衷)。

© www.soinside.com 2019 - 2024. All rights reserved.