The form or is equivalent to the following: (or) ≡ 'nil (or form ) ≡ form (or form 1 form 2 … form n ) ≡ ((lambda (var) (if var var (or form 2 … form n ))) form 1 ) where var does not occur in form 2 … form n (or (= 2 2) (> 2 1)) ⇒ t (or (= 2 2) (< 2 1)) ⇒ t (let ((x 'a)) (or x (setq x 'b))) ⇒ a (let ((x nil)) (or x (setq x 'b))) ⇒ b Control structure Constants constant → object There are three kinds of constants: literals, quoted expressions, and named constants.
(equal 'a 'a) ⇒ t (equal 2 2) ⇒ t (equal 2 2.0) ⇒ nil (equal '(a) '(a)) ⇒ t (equal '(a (b) c) '(a (b) c)) ⇒ t (equal (cons 1 2) (cons 1 2)) ⇒ t (equal '(a) (list 'a)) ⇒ t (equal "abc" "abc") ⇒ t (equal (vector 'a) (vector 'a)) ⇒ t (equal #(a b) #(a b)) ⇒ t (equal #(a b) #(a c)) ⇒ nil (equal "a" "A") ⇒ nil Logical connectives ( not obj ) → boolean This predicate is the logical “not” (or “”).