Newbie help, predicate confusion



Hello,
Thanks a lot for a small lecture given in reply to Carl.
Can I ask the question?

> PS Though the Maxima language doesn't have pattern-matching or
> destructor-based function definition, it does have something vaguely
> related:
>
>   fact[0]:=0;
>   fact[n]:=n*fact[n-1];
>
> Note the square brackets instead of parentheses.
How this one could be connect with pattern-matching task. Also, in my system I 
have
(C8) fact[0]:=0;

Improper parameter in function definition for fact:
0
 -- an error.  Quitting.  To debug this try DEBUGMODE(TRUE);)

best regards,
valerij