从cl-user
包中导入某些内容是好主意吗据我所知,这个包的内容不是由标准指定的,那么从cl-user
包导入函数是否会破坏程序的兼容性例如,我使用GNU CLISP,我想在我的程序中使用xor
和!
函数,我已经从cl-user
包中导入了它们,但是我如何知道其他实现也包括这些函数有什么约定吗?
最佳答案
在CLISP上,xor
和!
都是EXT
包的外部,而不是CL-USER
它们不是标准函数,所以在编写便携代码时不能依赖它们的存在。
您可以沿着这些行编写一些内容,以便在CLISP上使用内置函数,在其他LISPs上使用自制函数:
(in-package :my-package)
#+CLISP
(import 'ext:xor)
#-CLISP
(defun xor (&rest what)
;; your own xor implementation
...)
#+CLISP
(import 'ext:!)
#-CLISP
(defun ! (&rest what)
;; your own ! implementation
...)
关于lisp - 从cl-user包导入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24284307/