明确定义时,函数声明中的未定义变量

时间:2017-08-26 22:47:21

标签: common-lisp sbcl

我正在开发一个函数,可以让你测量传递函数run-n-time的运行时间。它并不接近完成,因为在编写代码时,我遇到了一个奇怪的错误。请注意,我对普通的lisp很新。

将其输入我的sbcl-repl(版本:SBCL 1.3.1.debian

(defun run-n-time (fn times argn)
  (loop for n from 0 to times
    do (apply fn (argn n))))

给我这个输出(删除了不重要的东西)

; caught STYLE-WARNING:
;   The variable ARGN is defined but never used.

; in: DEFUN RUN-N-MEASURE
;     (ARGN N)
; 
; caught STYLE-WARNING:
;   undefined function: ARGN

它声明argn未使用未定义。

我不知道这里发生了什么,这是一段简单的代码:(

1 个答案:

答案 0 :(得分:3)

Common Lisp具有单独的函数和值命名空间。

表单(argn n)使用argn运算符,而不是变量。您需要在funcall使用(funcall argn n)

相关问题