述語
条件の真偽を判定するような式を,述語(predicate)という.条件式では,偽(#f)以外の値を真と扱う.よっ て,あらゆる式を条件判定に用いることが可能ではあるが,述語といった ときは,通常,真偽値を返す関数とそれらをand,or,notで組み合わせた式を指す.
- 数値に関する述語
- =, <, >, <=, >=, zero?, positive?, negative?, odd?, even? ...
- データ型に関する述語
- boolean?, char?, string?, symbol?, list?, pair?, null? ...
- 様々なデータの等価性を判定するための述語
- eq?, eqv? equal?
- その他比較のための述語
- string<?, string>?, char<?, char<=? ...
- eq?は,比較する2つの引数がシステム内部で同一のデータ(セル)を指し示している場合に#tを返す.
- eqv?は,eq?で等しいか数値として等しい2つの引数が与えられたとき#tを返す.
- equal?は,評価した結果が等しいような2つの引数が与えられたとき#tを返す.
- eq?で等しいと判定されるデータは,eqv?,equal?でも等しい.
- eqv?で等しいと判定されるデータは,equal?でも等しい.
- equal?で等しいと判定されるデータがeqv?,eq?で等しいとは限らない.
- eqv?で等しいと判定されるデータがeq?で等しいとは限らない.
- equal?は汎用的.eq?は高速.
- symbolの比較には,eq?
- symbolと数値を同時に扱う場合は,eqv?(数値のみを扱う場合は,"="の方がよい)
- listの構造の比較には,equal?