【入門】CommonLispその2【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0769デフォルトの名無しさん
2007/04/17(火) 02:11:03754 で入門書読みながらっていってたけど、何読んでるの?
> なぜにfunctionpがnilなのにfuncall可能なのかがさらにわからないのです。
functionp は引数のオブジェクトを評価しない(スロットの参照にいかない)ので、
(functionp '+) は「シンボル + は関数か?」という意味になる。当然 NIL。
(functionp #'+) は「関数 + は関数か?」という意味なので T
funcall は第一引数に「関数修飾子 (function designator)」をとる。これは関数もしくは
グローバル環境で関数名を表わすシンボルね。後者なんで functionp が NIL でもシンボル +
を funcall できるわけ。今は + を上書きしたりはしてないだろうから、#'+ == (symbol-function '+) ね。
■ このスレッドは過去ログ倉庫に格納されています