Common Lisp は動的型付け言語
Common Lisp は動的型付け言語。次のようにどんどん型が変っていく。
(setf x (make-array 0 :element-type 'character :adjustable t :fill-pointer 0))
;; => ""
(type-of x)
;; => (AND (VECTOR CHARACTER 0) (NOT SIMPLE-ARRAY))
(vector-push-extend #\あ x)
;; => 0
(setf t1 (type-of x))
;; => (AND (VECTOR CHARACTER 1) (NOT SIMPLE-ARRAY)) ; ほら型がかわった
(typep x t1)
;; => T
(vector-push-extend #\い x)
;; => 1
(setf t2 (type-of x))
;; => (AND (VECTOR CHARACTER 3) (NOT SIMPLE-ARRAY)) ; また型がかわった
(typep x t2)
;; => T
(typep x t1) ; もうこの型ではない。
;; => NIL
ね。動的でしょ?
0 件のコメント:
コメントを投稿