http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_s.htm
special form n. a list, other than a macro form, which is a form with special syntax or special evaluation rules or both, possibly manipulating the evaluation environment or control flow or both. The first element of a special form is a special operator.
CL-USER> (my-mapcar #'length '((1) (1 (1 (1))) (1 1 1)))
(1 2 3)
(defn last-name'
"Select the last name from a name represented as a list."
[name]
(let [lname (last name)]
(if (some #(= % lname) suffixes)
(last-name' (butlast name))
lname)))
(defun square (x)
(* x x))
(defun power (x n)
(cond ((= n 0) 1)
((evenp n) (square (power x (/ n 2))))
(:else (* x (power x (- n 1))))))
(power 2 10)
;; Exercise 2.3
(def simple-japanese-grammar
'((sentence -> (subject predicate))
(subject -> (noun-phrase ParticleForSubject))
(predicate -> (noun-phrase ParticleForObject Verb))
(noun-phrase -> (NounModifier Noun))
(NounModifier -> その ある)
(Noun -> 男 ボール 女 テーブル)
(ParticleForSubject -> が)
(ParticleForObject -> を)
(Verb -> 打った 取った 見た 好んだ)))
(reset! grammar simple-japanese-grammar)
(generate 'sentence)
> (generate 'sentence)
(ある テーブル が その 女 を 好んだ)