2017-09-30 4 views
0

Ich bin ziemlich neu in VDM ++ und ich versuche Fälle in einer Operation zu verwenden, um zu sehen, wie es funktioniert.Anwendungsfälle in Operationen in VDM ++

Meine Idee war, der Operation eine Eingabe zu geben und zu sehen, was es mir als Ausgabe gab. Also fx. meine Eingabe könnte sein: und ich würde erwarten, dass die Ausgabe gerade ist.

Die folgenden Operationen nicht und geben Sie mir die Fehlermeldung "Unexpected Token in Ausdruck"

public sign: (seq of char) ==> (seq of char) 
sign(sign) == 
cases sign: 
    <Even> -> "Even", 
    <Odd> -> "Odd", 
    others -> "Unknown" 
end 

Antwort

0

Hoffentlich ist der Fehler tatsächlich Unexpected token in statement (nicht Ausdruck?). Die Fallanweisung erfordert, dass die RHS jeder Fallklausel eine Anweisung ist. Sie müssten also sagen: -> return "Even". Alternativ können Sie return cases sign: ... sagen und es in eine große return-Anweisung umwandeln, in der dann die Fälle expression, die ihm folgten, korrekt gebildet würden.

+0

PS. Sie erhalten "Muster kann nicht übereinstimmen" Fehler, wenn Sie die obigen Änderungen vornehmen, aber hoffentlich ist der Grund offensichtlich :) –