【发布时间】:2015-07-10 13:24:16
【问题描述】:
我正在学习 Lisp 编程语言。我写了一个简单的程序:
(defun abs(x)
(cond ((> x 0) x)
((= x 0) 0)
((< x 0) (- x))))
(print (abs 5))
当我编译并运行此代码时,我收到以下警告:
WARNING: DEFUN/DEFMACRO(ABS): #<PACKAGE COMMON-LISP> is locked
Ignore the lock and proceed
WARNING: DEFUN/DEFMACRO: redefining function ABS in /home/lisp/file.lisp, was defined in C
我不明白为什么会给出这个警告,这是什么意思? 谁能解释一下?
【问题讨论】:
-
除了 FrédéricHamidi 的评论,请注意 Common Lisp 中已经定义了一个 abs 函数。你不能重新定义它。要么使用不同的包,要么使用不同的名称(例如,my-abs)。
标签: lisp common-lisp clisp