User blog comment:MilkyWay90/Finishing my very first notation - The Generalized Factorial/@comment-35470197-20190710234255

Expressions like \(F(1,!,1,2,1)\) and \(F(1,!)\) are undefined in the current rule sets. Also, the definition is a little ambiguous because of the lack of appropriate declaretions of symbols. For example, I recommend the following alternative descriptions: Of course, this is a very strict judgement. Even if you do not follow some recommendations above, it can possibly work, as long as you add detailed explanations.
 * 1) Use \(F_!\) in order to distinguish the extended one from the original \(F\). For example, \(F_!(1,1,!,1,1) = F(1,1,1,1)\).
 * 2) Restrict \(n\) to be a natural number greater than \(1\) in order to avoid the diverging loop \(F(!,0) = F(F(!,-1))\).
 * 3) Clarify that "\(1,\ldots\)" and "\(,ldots,1)\)" can be empty, but \(1,\ldots,1\) is not empty.
 * 4) Then you will find that the first rule \(F_!(1,1,\ldots,!,\ldpts,1,1) = F(1,1,\ldots,1,1)\) is not applicable to expressions like \(F_!(1,!)\).
 * 5) Abbreviation with \(\ldots\) without descriptions is quite ambiguous, and hence avoids others from checking errors.
 * 6) Clarify that no exclamation mark appears in "\(\ldots\)" in order to avoid the application to the rule \(F(!,n,\ldots,) = F(F(!,n-1,\ldots),n,\ldots)\) to \(F(!,2,!)\).
 * 7) If you clarify that \(F\) is a notation in which exclamation does not appear, then the use of \(F_!\) reduces the ambiguity here. Say, if you write \(F_!(!,n,\ldots,) = F(F_!(!,n-1,\ldots),n,\ldots)\), others will understand that \(\ldots\) does not contain an exclamation because it appears in \(F\).
 * 8) The terminology of an "array notation" is ambiguous, too. For example, if \(F\) is an array notation, then is the extended \(F\) with exclamation again an array notation? Then could you repeat the extention again? Then a problem occurs because the extended \(F\) includes an exclamation mark. Therefore it is better to clarify that \(F\) should be a notation without exclamation marks.
 * 9) Avoid using \(\ldots\) in two distinct way. When you write "\(1,\ldots\)" and something like that, then you automatically assume that only \(1\) can appear in \(\ldots\). On the other hand, when you write "\(n,\ldots\)" or "\(!,\ldots\)", then you do not assume such repeatings. For example, we often use an abbreviation like the following:
 * 10) \(I\) denotes a sequence of \(1\)'s, which is possible empty.
 * 11) \(@\) denotes any sequences of natural numbers.