我有以下的语法,我需要翻译成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