common-lisp - 带有默认参数值的 Lisp 函数

标签 common-lisp

我想要一个带有单个参数的 CL 函数,但也有一个默认参数值。

(defun test1 ((x 0))
  (+ x x))

似乎是语法,但它不起作用。我看到的教程只有与 &optional 和 &key 一起使用时才有像上面那样的参数默认形式。是否有可能只有一个函数参数而它有一个默认值?

最佳答案

您需要表明它是一个可选参数:

(defun test1 (&optional (x 0))
   (+ x x))

正如所写,您指定了一个无效的 lambda 列表,并且应该希望看到来自 REPL 的一些诊断信息。

关于common-lisp - 带有默认参数值的 Lisp 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990920/

相关文章:

lisp - 使用带有一个或多个符号的 case

function - "+"如何在 Common Lisp 中使用特殊运算符/表单实现

sockets - Clozure Common Lisp 中的 make-socket 错误

LispBox 如何打破循环?

lisp - 在 LISP 中使用 'ash' 执行二进制搜索?

performance - Common Lisp 中前导小数位为 12 的 2 的第一个幂

version - 通用 Lisp : getting version of an ASDF package

common-lisp - 如何定义一个 &key 参数来取代 Lisp 中的 &optional 参数

emacs - Emacs 中的 Common Lisp Inferior Lisp 缓冲区

common-lisp - sbcl 判断是否是符号链接(symbolic link)