1 Numbers
1.1 Predicates
"draftに保存したまま2ヶ月ほど放置してた…"
述語ですか.記法とか細かいところは気にしない
.こういうことがしたいときにどの関数を使えばいいか見つかったらあとは調べられる.
- 数の大小とかの比較
; Emacsやと引数2個しかとれなさそう. ; CLやと1個以上 (= 1 2 3) ; => NIL (= 2 2 2) ; => T (= 2 2 4) ; => NIL ; 全て同じ値ならTを返す (/= 1 2 3) ; => T (/= 1 2 2) ; => NIL (/= 2 2 2) ; => NIL ; 全て違う値ならTを返す (> 1 2 3) ; => NIL (> 3 2 1) ; => T (> 3 2 2 1) ; => NIL (> 3 2 4) ; => NIL (> 5 2 3) ; => NIL ; 左から順に減っていればTを返す (>= 1 2 3) ; => NIL (>= 3 2 1) ; => T (>= 3 2 2 1) ; => T (>= 3 2 4) ; => NIL (>= 5 2 3) ; => NIL ; 左から順に減ってるか同じならTを返す (< 1 2 3) ; => T (< 1 2 2 3) ; => NIL (< 3 2 1) ; => NIL (< 3 2 4) ; => NIL (< 5 2 3) ; => NIL ; 左から順に増えていればTを返す (<= 1 2 3) ; => T (<= 1 2 2 3) ; => T (<= 3 2 1) ; => NIL (<= 3 2 4) ; => NIL (<= 5 2 3) ; => NIL ; 左から順に増えているか同じならTを返す
- 符号とか奇数偶数のチェック
(minusp 3); => NIL (minusp 0); => NIL (minusp -2); => T (zerop 3); => NIL (zerop 0); => T (zerop 0.0); => T (zerop -2); => NIL (plusp 3); => T (plusp 0); => NIL (plusp -2); => NIL (evenp 3); => NIL (evenp 0); => T (evenp 0.0); [Condition of type TYPE-ERROR] (evenp -1); => NIL (evenp -2); => T (oddp 3); => T (oddp 0); => NIL (oddp 0.0); [Condition of type TYPE-ERROR] (oddp -1); => T (oddp -2); => NIL
- 数の型チェック
(numberp 1); => T (numberp 1.0); => T (numberp '1.0); => T (numberp 2/3); => T (numberp 'hoge); => NIL (realp 1); => T (realp 1.3); => T (realp 2/3); => T (rationalp 1); => T (rationalp (rational 3.4)) (rationalp 2/3); => T ; 有理数じゃない数って虚数とか? (floatp 3); => NIL (floatp 3.0); => T (integerp 2) (complexp 2); => NIL (complexp (complex 2 3)); => T (complexp #C(2 3)); => T (random-state-p 3); => T ; なにこれ