Háromféleképp próbáltam, de nem ment (egyszer az end-re, aztán a |-ra (vonásra) mondott syntax error-t). Fiktív példákkal:
Hibák az 1. példában:
Ebből az is következik, hogy nem tud olyan lokális nevet bevezetni az egyik klózban, amelyik egy másik klózban is használható lenne.
A 2. példában is felsoroltak mellett még egy hiba van:
A 3. példában a korábbiakhoz képest nincs új hiba, ám a külső let-kifejezésben hiába deklarálja (deklarálná, ha nem lenne hibás a deklaráció!) a lokális A nevet, azt a Q függvény első és második klózában bevezett A paraméterek, amelyek maguk is egymástól független dolgokat jelölnek, elfedik (vö. láthatóság és érvényességi kör). Egyedül a harmadik klózban látszik a külső let-kifejezésben bevezett A név, de tartok tőle, hogy nem ezt akarta elérni.
E hosszú történet talán legfontosabb tanulsága, hogy bárkinek, mielőtt programírásba fogna, érdemes megismerkednie az SML-kifejezések elemi szintaxisával. Ajánlom mindenkinek a figyelmébe az SML szintaxisát ismertető fejezetet a jegyzetben.
Kérés: ha "hogyan kell megoldani, hogy..." vagy "miért az a válasz, hogy..." jellegű kérdésük van, kérjük, mellékeljék a megfelelő (rövid, de a kérdéses viselkedést produkáló) programrészletet és az értelmező válaszát, ui. csak akkor tudjuk pontosan megmondani, hogy mi lehet a gond. Ezek nélkül legfeljebb találgathatunk, vagy széttárhatjuk a kezünket, mint most.