Lispのlength関数
リストの長さ(要素数)を調べる関数に、lengthというのがある。この関数を処理系に打ち込んでみると、
LENGTH : (SEQ)
と表示される。どうやら、SEQUENCEというデータ型があり、それの長さを調べることができる、というものだ。当然、リストはSEQUENCEの一部ということになる。あとは、ベクタ(1次元配列)がSEQUENCEに含まれる。
?(setf lst (list 'a 'a 'a)) (A A A) ?(length lst) 3 ?(setf vec (make-array 3)) #(0 0 0) ?(length vec) 3 ?(setf array (make-array '(2 2))) #2A((0 0) (0 0)) ?(length array) > Error: value #<ARRAY 2x2, simple> is not of the expected type SEQUENCE.