Shammer's Philosophy

My private adversaria

Lisp の判定処理サンプル - Ver20121208

数字かどうか判定する

? (numberp 100)
T
? (numberp nil)
NIL
? (numberp "aaa")
NIL
? (numberp -101)
T
? 

偶数・奇数判定

偶数
? (evenp 10)
T
? (evenp 11)
NIL
? 
奇数
? (oddp 10)
NIL
? (oddp 11)
T
? 

文字列かどうか判定

? (stringp "aaa")
T
? (stringp 100)
NIL
?

数字かアルファベットか

? (alphanumericp #\a)
T
? (alphanumericp #\Space)
NIL
? (alphanumericp #\A)
T
? (alphanumericp #\97)
> Error: Unknown character name - "97" .
> While executing: #<Anonymous Function #x300000512B2F>, in process Listener(4).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.
1 > q
? (alphanumericp #\9)
T
?

その他の基本データ型判定

? (listp '(0))
T
? (consp '(0))
T
? (atom '(0))
NIL
? (atom "aaa")
T
? 

独自のデータ型かを判定

? (defclass foo () ((x :reader get-x :writer set-x)))
#<STANDARD-CLASS FOO>
? (typep (make-instance 'foo) 'foo)
T
?