我正在开发一个函数,可以让你测量传递函数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
未使用且未定义。
我不知道这里发生了什么,这是一段简单的代码:(
答案 0 :(得分:3)
Common Lisp具有单独的函数和值命名空间。
表单(argn n)
使用argn
运算符,而不是变量。您需要在funcall
使用(funcall argn n)
。