プログラミング言語I

スペシャルフォーム and, or

and

(and 式1 式2 ... 式n)
式を順に評価していき、全ての値が #f でない時 最後の式nを評価した値を返す

(and 1 2 3 4 5) → 5
(and 1 #f 3 4 5) → #f

or

(or 式1 式2 ... 式n)

式を順に評価していき、#fでない 値を得られればその値をすぐ返す. 全ての式の値が #f の時 #f を返す

(or 1 2 3 4 5) → 1
(or #f #f #f 4 #f) → 4
(or #f #f #f #f #f) → #f

よくあるやつ

xが10以上 かつ 20以下
(and (<= 10 x) (<= x 20))
xが10未満 または 20より大きい
(or (< x 10) (< 20 x))
以上、以下、より大きい、より小さい、未満 などの表現は注意して
and or がスペシャルフォームであることを示す例

(and #f (+ 1 '(2 3)))

(or 10 (+ 1 '(2 3)))

エラーにならない