octets型定義
common lispでは、バイト配列型を(vector (unsigned-byte 8))と表す。
この型は個人的にはかなり使用頻度が高いのだが、見ての通り長くて打ちづらい。
今まではその時々によって、上の型をそのまま使ったり、エイリアス型を定義して使ったりしていたのだが、ここで正式(?)に省略形の型を定義しておくことにする。
;; 名前はsbclのsb-ext:string-to-octets関数から借用 (deftype octets () '(vector (unsigned-byte 8)))
一応、使用例。
;; before > (sb-ext:octets-to-string (coerce #(239 188 172) '(vector (unsigned-byte 8)))) --> "L" ;; after > (sb-ext:octets-to-string (coerce #(239 188 172) 'octets)) --> "L"
追記(2009/12/20)
関連する型定義も追加
(deftype octet () '(unsigned-byte 8)) (deftype octets () '(vector octet)) (deftype simple-octets () '(simple-array octet))