我有以下的語法,我需要翻譯成SML數據類型:SML數據類型奮鬥
Integer ranges over SML integer constants.
Boolean ::= 'true' | 'false'
Operator ::= 'ADD' | 'IF' | 'LESS_THAN'
Arguments ::= (',' Expression) *
Expression ::= 'INT' '(' Integer ')'
| 'BOOL' '(' Boolean ')'
| 'OPERATION' '(' Operator ',' '[' Expression (',' Expression) * ']' ')'
我已成功執行以下操作:
datatype BOOL = true | false;
datatype OPERATOR = ADD | IF | LESS_THAN;
datatype INT = INT of int;
但是我與數據類型Arguments
和Expression
掙扎。任何幫助,將不勝感激。
謝謝您的回答,但我正在努力|操作(也就是說,我不太清楚如何將OPERATION描述爲(OPERATOR,然後遞歸地用EXPRESSION):S剛開始學習SML,我發現它非常棘手。 – user1265230 2012-03-13 00:02:30
我增加了一些。如果你搜索「sml數據類型「可以找到一堆示例,它非常合乎邏輯,簡單且一致,不用擔心遞歸等問題;在列表中粘貼多個值(以及同一類型的多個值)(以及元組中的多個不同類型的值)。 – 2012-03-13 00:23:28