関数も型の一つです
関数も型の一つなので、変数に関数を関連づけることが出来る。オーケー、わかったよ。
例えば下のように。(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)))でない理由が分からない。