Consider defining such a function with blanks arguments
f\[x BlankBlank, y BlankBlank, z BlankBlankBlank\] := x + y - z
not that the third arguments with 3 blanks ("x" or "y" follows two blanks). When input three actual parameters, the function is normal. But when input 4 actual parameters, the results are stranger: when z serves as an empty, it seems obtain a value -1!
Input\[1\]: f\[100, 1, 2, 3\],
Output\[3\]: 95.
To know the details, I get all the possible permutation distributing the actual parameters
Input\[2\]:ReplaceList
Output\[2\]:{95, 100, 105, 100, 105, 105}
which, for easy seeing the detail, corresponds to the following:
Input\[3\]ReplaceList\[f\[100, 1, 2, 3\],
f-> f\[x\] + f\[y\] - f\[z\]\] // TableForm;
Output[3] shows that when f[z] serves as f[], it get 1. but if the function was revised as x+y+z, when f[z] serves as f[], it would get 0. Why do -f[] get 1 and f[] get 0? See the program.nb attached.
Reply to this discussion
in reply to