I don't agree with the philosophy here. There are a number of differences between Poly/ML and SML/NJ (in particular the latter's weak handling of overloading), all connected with omissions from the formal definition. Such examples could be used to inform students of how quickly incompatibilities emerge when a specification is weak. Then they are ready to see how much worse it is with C.
I don't see why that example is necessary for teaching students programming, except concerning the specific issue of the need for a formal semantics to avoid such incompatibilities.
Larry Paulson
On 20 Sep 2012, at 08:20, Lars-Henrik Eriksson lhe@it.uu.se wrote:
I believe that the stand-alone behavior is the reasonable one -- it also agrees with SML/NJ and Moscow ML.
Does this cause problems? Yes, for me it does. We use ML in the introductory programming course for CS majors and it causes unnecessary complications for the students.