データ型


alpha-char-p

Type: Function
Arguments: alpha-char-p CHAR
Package: lisp
File: builtin.l
文字が英字[A-Za-z]かどうかを判定します。

  CHAR : 判定する文字

SeeAlso: alphanumericp
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

alphanumericp

Type: Function
Arguments: alphanumericp CHAR
Package: lisp
File: builtin.l
文字が英数字[A-Za-z0-9]かどうかを判定します。

  CHAR : 判定する文字

SeeAlso: alpha-char-p
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

arrayp

Type: Function
Arguments: arrayp OBJECT
Package: lisp
File: builtin.l
OBJECT が array なら t 、それ以外なら nil を返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

atom

Type: Function
Arguments: atom OBJECT
Package: lisp
File: builtin.l
OBJECTがconsでなければt、それ以外ならnilを返します。

  (atom x) == (typep x 'atom) == (not (typep x 'cons))

注意:(atom '()) は '() == nilなのでt

SeeAlso: consp
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

characterp

Type: Function
Arguments: characterp OBJECT
Package: lisp
File: builtin.l
OBJECT が character なら t 、それ以外なら nil を返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

check-type

Type: Macro
Arguments: check-type PLACE TYPESPEC &optional STRING
Package: lisp
File: condition.l
(詳細不明)

使用例:
  ;;; nの型チェックをしてみる。
  (check-type n integer)

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

coerce

Type: Function
Arguments: coerce OBJECT TYPE
Package: lisp
File: typespec.l
OBJECT を TYPE 型に変換します。

TYPE はシンボルまたはリストで、それぞれ以下の型に変換されます。
  'list         ──→ リスト
  'array        ─┬→ 配列
  'simple-array ─┘
  'character    ──→ 文字
  'float        ─┬→ 単精度浮動小数点数
  'short-float  ─┤
  'single-float ─┘
  'double-float ─┬→ 倍精度浮動小数点数
  'long-float   ─┘
  'complex      ──→ 複素数
  'function     ──→ 関数
リストの場合、その最初の要素で型が決まります。
2番目以降の要素は、最初の要素が array、simple-array、complex の場合のみ
意味を持ち、それぞれ以下のように動作します。
  '(array ...)        ─┬→ make-sequence の TYPE と同じ
  '(simple-array ...) ─┘
  '(complex ...)      ──→ 実部、虚部を二番目の要素の型に変換
  
使用例:
  (coerce "abc" 'list)                         ; 文字列を文字のリストに
  => (#\a #\b #\c)
  (coerce #(1 2 3) 'list)                      ; 配列をリストに
  => (1 2 3)
  (coerce '(a b c) '(array t 1))               ; リストを配列に
  => #(a b c)
  (coerce "abc" '(array t 1))                  ; 文字列を文字の配列に
  => #(#\a #\b #\c)
  (coerce '(#\a #\b #\c) '(array character 1)) ; 文字のリストを文字列に
  => "abc"
  (coerce "abc" '(array character 1))          ; 意味なし
  => "abc"

  (coerce "a" 'character)                      ; 文字列を文字に
  => #\a
  
  (coerce 1 'float)
  => 1.0
  (coerce 1 'double-float)
  => 1.0d0
  (coerce 1.0 'complex)
  => #C(1.0 0.0)
  (coerce #C(1 2) '(complex float))            ; 単精度の複素数に
  => #C(1.0 2.0)
  
  (coerce 'let 'function)                      ; シンボル名の関数を返す
  => #<function: let>
  (coerce '(lambda (x) (* x 2)) 'function)     ; 関数を作ることも
  => #<lexical-closure: (anonymous)>
  (funcall (coerce '(lambda (x) (* x 2)) 'function) 12)
  => 24

SeeAlso: type-of
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

compiled-function-p

Type: Function
Arguments: compiled-function-p OBJECT
Package: lisp
File: builtin.l
OBJECTがcompiled code objectならt、それ以外ならnilを返します。

使用例:
  ;;; carの型を調べてみる。
  (type-of #'car)
  => compiled-function
  (compiled-function-p #'car)
  => t

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

complexp

Type: Function
Arguments: complexp OBJECT
Package: lisp
File: builtin.l
OBJECT が complex number なら t 、それ以外なら nil を返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

consp

Type: Function
Arguments: consp OBJECT
Package: lisp
File: builtin.l
OBJECTがconsならt、それ以外ならnilを返します。

  (consp x) == (typep x 'cons) == (not (typep x 'atom))

注意: (consp '()) は '() == nilなのでnil。

SeeAlso: atom
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

double-float-p

Type: Function
Arguments: double-float-p OBJECT
Package: lisp
File: builtin.l
OBJECT が double-float なら t 、それ以外なら nil を返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

eq

Type: Function
Arguments: eq X Y
Package: lisp
File: builtin.l
X と Y が同一オブジェクトならt、そうでないならnilを返します。
数値や文字列に対しては見かけ上同じでもtとなる保障はありません。xyzzyでは、
数値はtとなるが文字列ではnilとなるように実装されているようです。

使用例:
  ;;; eqで比較してみる。
  (eq 'foo 'foo)        => t            ; 仕様
  (eq 2 2)              => t            ; 処理系依存
  (eq "foo" "foo")      => nil  ; 処理系依存
  (eq '(1 2) '(1 2))    => nil  ; 処理系依存

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

eql

Type: Function
Arguments: eql X Y
Package: lisp
File: builtin.l
X と Y が同一オブジェクトか、同じ型の数値または文字型で値が等しいかを返します。
等しければtを、そうでなければnilを返します。eqとは異なり、値として等しい
かを判断します。ただし、中身までは見ないので文字列は対象外となります。

使用例:
  ;;; eqlで比較してみる。
  (eql 'foo 'foo)       => t            ; 仕様
  (eql 2 2)             => t            ; 仕様
  (eql "foo" "foo")     => nil  ; 処理系依存
  (eql '(1 2) '(1 2))   => nil  ; 処理系依存

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

equal

Type: Function
Arguments: equal X Y
Package: lisp
File: builtin.l
X と Y が同じ構造を持っていればtを、そうでなければnilを返します。

使用例:
  ;;; equalで比較してみる。
  (equal 'foo 'foo)     => t            ; 仕様
  (equal 2 2)           => t            ; 仕様
  (equal "foo" "foo")   => t            ; 仕様
  (equal '(1 2) '(1 2)) => t            ; 仕様

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

equalp

Type: Function
Arguments: equalp X Y
Package: lisp
File: builtin.l
equalと同じように X と Y を比較します。例えば大文字と小文字は区別しません。

使用例:
  ;;; equalpで比較してみる。
  (equalp "Foo" "foo")  => t

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

floatp

Type: Function
Arguments: floatp OBJECT
Package: lisp
File: builtin.l
OBJECTがfloatならt、それ以外ならnilを返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

functionp

Type: Function
Arguments: functionp OBJECT
Package: lisp
File: builtin.l
OBJECTが関数ならt、それ以外ならnilを返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

integerp

Type: Function
Arguments: integerp OBJECT
Package: lisp
File: builtin.l
OBJECTがintegerならt、それ以外ならnilを返します。

  (integerp x) == (typep x 'integer)

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

kana-char-p

Type: Function
Arguments: kana-char-p CHAR
Package: editor
File: builtin.l
文字が半角カナ文字かを返します。

  t    半角カナ文字である。
  nil  半角カナ文字でない。

カナ文字は以下の範囲です。
  Code          Char
  ----          ----
  0xa1 .. 0xb0  #\。 .. #\ー
  0xb1 .. 0xdd  #\ア .. #\ン
  0xde          #\゙
  0xdf          #\゚

SeeAlso: kanji-char-p
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

kanji-char-p

Type: Function
Arguments: kanji-char-p CHAR
Package: editor
File: builtin.l
文字CHARが漢字かを返します。
(詳細不明)

SeeAlso: kana-char-p
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

keymapp

Type: Function
Arguments: keymapp OBJECT
Package: editor
File: builtin.l
指定されたOBJECTがキーマップかを返します。

  non-nil   OBJECTはキーマップ
  nil       OBJECTはキーマップではない

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

keywordp

Type: Function
Arguments: keywordp OBJECT
Package: lisp
File: builtin.l
与えられたオブジェクト OBJECT がキーワードか否かを返します。 OBJECT がシ
ンボルであり、かつ keyword パッケージに所属するときに t を返しているよう
です。

  (symbol-package 'a)
  =>#<package: user>
  (symbol-package :a)
  =>#<package: keyword>
  
  (symbolp 'a)
  =>t
  (keywordp 'a)
  =>nil
  
  (symbolp :a)
  =>t
  (keywordp :a)
  =>t

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

listp

Type: Function
Arguments: listp OBJECT
Package: lisp
File: builtin.l
OBJECTがconsか空リスト()ならt、それ以外ならnilを返します。

  (listp x) == (typep x 'list) == (typep x '(or cons null))

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

local-variable-p

Type: Function
Arguments: local-variable-p SYMBOL &optional BUFFER
Package: editor
File: builtin.l
指定されたシンボルがバッファローカル変数かどうかを判定します。

使用例:
  ;;; buffer: foo
  (local-variable-p 'abc)
  => nil
  (make-local-variable 'abc)
  => t
  (local-variable-p 'abc)
  => t

  ;;; buffer: bar
  (local-variable-p 'abc)
  => nil

SeeAlso: make-local-variable
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

long-float-p

Type: Function
Arguments: long-float-p OBJECT
Package: lisp
File: builtin.l
OBJECTがlong-floatならt、それ以外ならnilを返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

markerp

Type: Function
Arguments: markerp OBJECT
Package: editor
File: builtin.l
指定されたOBJECTがマーカーかを返します。

  t     OBJECTはマーカー
  nil   OBJECTはマーカーではない

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

null

Type: Function
Arguments: null OBJECT
Package: lisp
File: builtin.l
OBJECTが()ならばt、それ以外ならnilを返します。

  (null x) == (typep x 'null) == (eq x '())

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

numberp

Type: Function
Arguments: numberp OBJECT
Package: lisp
File: builtin.l
OBJECTが数値ならばt、それ以外ならnilを返します。

  (numberp x) == (typep x 'number)

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

packagep

Type: Function
Arguments: packagep OBJECT
Package: lisp
File: builtin.l
OBJECTがpackageならt、それ以外ならnilを返します。

使用例:
  ;;; 指定された文字列のパッケージがあるかを調べる。
  (setq pkg (find-package "win32"))     => nil
  (packagep pkg)                        => nil
  (setq pkg (find-package "winapi"))    => #<package: winapi>
  (packagep pkg)                        => t

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

processp

Type: Function
Arguments: processp OBJECT
Package: editor
File: builtin.l
指定されたOBJECTがプロセスかを返します。

  t     OBJECTはプロセス
  nil   OBJECTはプロセスではない

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

rationalp

Type: Function
Arguments: rationalp OBJECT
Package: lisp
File: builtin.l
OBJECTがratioかintegerならt、それ以外ならnilを返します。

  (rationalp x) == (typep x 'rational)

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

realp

Type: Function
Arguments: realp OBJECT
Package: lisp
File: builtin.l
OBJECT が real number なら t 、それ以外なら nil を返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

regexpp

Type: Function
Arguments: regexpp OBJECT
Package: editor
File: builtin.l
指定されたOBJECTがコンパイル済み正規表現かを返します。

  t     OBJECTはコンパイル済み正規表現
  nil   OBJECTはコンパイル済み正規表現ではない

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

sequencep

Type: Function
Arguments: sequencep OBJECT
Package: lisp
File: builtin.l
OBJECT が sequence なら t 、そうでなければnilを返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

short-float-p

Type: Function
Arguments: short-float-p OBJECT
Package: lisp
File: builtin.l
OBJECTがshort-floatならt、それ以外ならnilを返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

si:*builtin-function-p

Type: Function
Arguments: *builtin-function-p OBJECT
Package: system
File: builtin.l
オブジェクトがビルトイン関数かどうかを調べます。

使用例:
  ;;; carを調べてみる。
  (si:*builtin-function-p #'car)
  => t

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

simple-string

Type: Misc
Package: lisp
simple-string とはシンプルな文字列のことを指します。
共有可能でなく、フィルポインタを持たず、サイズ変更不可能な文字列のことで
す。formatやconcatを使って文字列を操作する場合にはsimple-stringのままです。

使用例:
  ;;; simple-stringの場合
  (type-of "abc") 
  => simple-string

SeeAlso: simple-string-p
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

simple-string-p

Type: Function
Arguments: simple-string-p OBJECT
Package: lisp
File: builtin.l
OBJECTがsimple-stringならt、それ以外ならnilを返します。

使用例:
  ;;; make-vectorを使ってsimple-stringでないstringを作ります。
  (setq var1 (make-vector 10 :element-type 'character)
        var2 (make-vector 10 :element-type 'character :fill-pointer 0))
  => ""
  (type-of var1)                => simple-string
  (type-of var2)                => string
  (simple-string-p var1)        => t
  (simple-string-p var2)        => nil

SeeAlso: simple-string
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

simple-vector-p

Type: Function
Arguments: simple-vector-p OBJECT
Package: lisp
File: builtin.l
OBJECTがsimple-vectorならt、それ以外ならnilを返します。

SeeAlso: vectorp
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

single-float-p

Type: Function
Arguments: single-float-p OBJECT
Package: lisp
File: builtin.l
OBJECTがsingle-floatならt、それ以外ならnilを返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

standard-char-p

Type: Function
Arguments: standard-char-p CHAR
Package: lisp
File: builtin.l
文字が、改行文字もしくは [ -~] かどうかを判定します。
表示可能な文字は SJIS 文字コードで 10, 32-126 です。

  CHAR : 判定する文字

戻り値:
  t   standard-char である
  nil standard-char でない

補足:
  ;;; 改行文字(SJIS 10) 以外の standard-char 文字一覧出力 (SJIS 32-126)
  (do ((i (char-code #\SPC) (1+ i)))
      ((= i (char-code #\DEL)))
    (format t "~A" (code-char i)))

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

stringp

Type: Function
Arguments: stringp OBJECT
Package: lisp
File: builtin.l
OBJECTがstringならt、それ以外ならnilを返します。

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

subtypep

Type: Function
Arguments: subtypep TYPE1 TYPE2
Package: lisp
File: typespec.l
ある型が他の型の副型かどうか調べて多値で返します。
(詳細不明)

  TYPE1 : 副型を指定します。
  TYPE2 : 型を指定します。

  t   t         TYPE1は明確にTYPE2の副型
  nil t         TYPE1は明確にTYPE1の副型ではない
  nil nil       関係を判断できない

使用例:
  ;;; サブタイプかどうかを調べる。
  (subtypep 'single-float 'number)
  => (single-float double-float long-float)
  (subtypep 'cons 'number)
  => nil

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

symbolp

Type: Function
Arguments: symbolp OBJECT
Package: lisp
File: builtin.l
OBJECTがsymbolならt、それ以外ならnilを返します。

  (symbolp x) == (typep x 'symbol)

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

type-of

Type: Function
Arguments: type-of OBJECT
Package: lisp
File: builtin.l
与えられたオブジェクトの型を返します。
(typep OBJECT (type-of OBJECT))は必ずtになります。

使用例:
  ;;; それぞれの型を調べてみる。
  (type-of 1)
  => integer
  (type-of 2.2)
  => single-float
  (type-of #'car)
  => compiled-function

[ Intro | 目次 | 索引 | 目的別 | データ型 ]

vectorp

Type: Function
Arguments: vectorp OBJECT
Package: lisp
File: builtin.l
OBJECTがvectorならt、それ以外ならnilを返します。

SeeAlso: simple-vector-p
[ Intro | 目次 | 索引 | 目的別 | データ型 ]

windowp

Type: Function
Arguments: windowp OBJECT
Package: editor
File: builtin.l
指定されたOBJECTがウィンドウかを返します。

  t     OBJECTがウィンドウ
  nil   OBJECTはウィンドウではない

[ Intro | 目次 | 索引 | 目的別 | データ型 ]