0

我正在使用 Common Lisp,并且我有多个函数使用相同类型的数据,并且我declare用来指定符号的类型,如下所示:

(defun foo (x)
  (declare (type single-float x))
  ...)

(defun bar (x y)
  (declare (type single-float x y))
  ...)

现在我想存储single-float到一个自定义符号changable-float中,这样我就可以轻松地更改这些函数的所有类型(例如,从single-floatdouble-float)。我已经尝试过这些代码,但它不起作用:

(defvar changeable-float 'single-float)

(defun foo (x)
  (declare (type changeable-float x))
  ...)

(defun bar (x y)
  (declare (type changeable-float x y))
  ...)

我怎样才能实现这个想法?

4

1 回答 1

5

用于DEFTYPE定义类型。

CL-USER 41 > (deftype foo () 'integer)
FOO

CL-USER 42 > (typep 3 'foo)
T

CL-USER 43 > (typep "33" 'foo)
NIL
于 2013-09-10T14:09:41.990 回答