`functor', `args', `funargs'
----------------------------

functor(FUNC)
     :: FUNC $B$NH!?t;R$r<h$j=P$9(B.

args(FUNC)
     :: FUNC $B$N0z?t%j%9%H$r<h$j=P$9(B.

funargs(FUNC)
     :: `cons(functor(FUNC),args(FUNC))' $B$rJV$9(B.

RETURN
     `functor()' : $BITDj85(B, `args()', `funargs()' : $B%j%9%H(B

FUNC
     $BH!?t7A<0$rI=$9ITDj85(B

   * $BH!?t7A<0$K4X$7$F$O(B, `vtype()' $B$r;2>H(B.

   * $BH!?t7A<0(B FUNC $B$NH!?t;R(B, $B0z?t%j%9%H$r<h$j=P$9(B.

   * $B5U$K(B, $B<h$j=P$7$?H!?t;R$rCM$K;}$D%W%m%0%i%`JQ?t$r(B `F' $B$H$9$l$P(B
     (`*F')(x) $B$G(B x $B$r0z?t$H$9$kH!?t8F$S=P$7$^$?$OH!?t7A<0$,F~NO$G$-$k(B.

     [0] functor(sin(x));
     sin
     [0] args(sin(x));
     [x]
     [0] funargs(sin(3*cos(y)));
     [sin,3*cos(y)]
     [1] for (L=[sin,cos,tan];L!=[];L=cdr(L)) {A=car(L); print(eval((*A)(@pi/3)));}
     0.86602540349122136831
     0.5000000002
     1.7320508058

$B;2>H(B
     *Note `vtype': vtype.

