Hello,
Section 4 of the project requirements says that:
All syntax errors detected in invalid ml programs must be reported via stderr on a line commencing with the '!' character. Your runml program must be able to detect all invalid ml programs - EXCEPT that your program will not be tested with any invalid expressions, so you do not need to validate the syntax of expressions.
Which makes sense- but how far does not being tested with "invalid expressions" go? Can we assume that all functions that are called have the correct number of parameters? This is important as it determines whether we must check the parameters for every nested expression against the number of parameters expected- which is a complex splitting issue. We know that "a function must have been defined before it is called in an expression", but can we assume that as long as it has been defined, it will be called correctly?
Thank you
If no clarification is given, better to be safe than sorry and check the number of parameters.