[Richard Fateman <fateman at EECS.Berkeley.EDU>, Sun, 07 May 2006 12:06:44 -0700]: Just a minor correction: > Head[3] is Integer ... > F[z_?PlusQ] :=... > Fz_?IntegerQ]:= The PlusQ and IntegerQ are predicate functions. To match on the head, the syntax would be F[z_Plus], F[z_Integer] etc.. Best regards, Albert.