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/

10-11 21:51