23

答えやすい質問ですが(たぶん)、しばらく探しても何も見つからなかったので、あなたに質問します。

与えられた変数が整数、ハッシュテーブルなどの特定のデータ型であるかどうかを判断する方法がありtypepますが、データ型を返す関数はありますか?

例えば

(defvar *x* 1)
*x*

(typep *x* 'integer)
T

(the-type-function *x*)
INTEGER
4

1 に答える 1

38

指定された変数が特定のデータ型 (整数、ハッシュテーブルなど) であるかどうかを判断するための typep があります。

あまり。Common Lisp では、変数はあなたが思っているようにはタイプされません。

(defvar *x* 1)
*x*

(typep *x* 'integer)
T

上記では変数の型について何も述べていません*x*1オブジェクトのタイプが であることを確認しますinteger

しかし、データ型を返す関数はありますか?

あまり。TYPE-OF変数ではなくオブジェクトの型を返す関数があります。

> (type-of 1)
FIXNUM

変数から値を取得する場合に違いはありません。

> (type-of *x*)
FIXNUM

しかし、それは変数がその型を持っているという意味ではありません。

注: Common Lisp には型と型宣言があります。しかし、それは少し違うようです。

于 2012-06-05T19:51:50.153 に答える