I wrote an assembler that supports floating point values. One of the operators I implemented was factorial because a lot of Taylor series seem to use it to define various constants. So right now, I have
.float -((2*3.14159265)**11)/11!
I found a bug in the parsing such that (2+3)! doesn't parse (the parsing of the factorial operator is in the wrong location). In fixing the bug, I found an issue that I don't know how best to resolve, since I personally have never used a programming language that defined a factorial operator. So my question: what should -3! produce? Should it error out as factorial isn't defined for negative numbers? Or should it parse as -(3!) and return -6? I ask because of -(2+3)!. What binds tighter? The minus, or the factorial?