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-floatsingle-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 に答える