関数も型の一つです

関数も型の一つなので、変数に関数を関連づけることが出来る。オーケー、わかったよ。
例えば下のように。(on Lispからの抜粋)

> (setq x #'append)
#<Compiled--Function 46B4BE>
> (eq (symbol-value 'x) (symbol-function 'append))
T

むむ…変数が関数を型に持つと言うことと、先ほどの「関数と変数との名前空間が異なる」というのは、違う次元の話なのかな。それに、symbol-functionの引数は'appendであって#'appendではないのも気になる。クオートってことはappendはリストとして渡されてるの??

(setf (symbol-function 'double)
        #'(lambda (x) (* x 2)))

これもよく分からない。symbol-function 'doubleで返る「何か」に対してλ式をセットする、と言うのは関数言語的ではないような気がする。これもまた (setf #'double #'(lambda (x) (* x 2)))でない理由が分からない。