我必須拿出一個取值爲抽象語法樹,並返回其評估結果的函數。解釋函數
評價將具有類型經驗 - > INT選項
評估(PROD(民5,DIFF(民6,序號1)));; VAL它:INT選項=約25
@約翰 - 帕爾默 我如何去這樣做?我可以使用模式匹配嗎?如果是的話,我將如何做,以確定需要完成的操作。
以下是我已經想出了?我仍然不明白每個說的代碼。
let rec evaluate = function
| Num n -> Some n
| Neg e -> match evaluate e with
|Sum (a,b) -> evaluate(a) + evaluate(b)
|Diff(a,b) -> evaluate(a) - evaluate(b)
| Prod (a,b) -> evaluate(a) * evaluate (b)
|Quot (a,b) -> evaluate(a)/evaluate(b)
'evaluate'需要是遞歸的,即'讓REC評估...' – 2012-03-06 03:09:06
@StephenSwensen - 感謝的是,固定答案 – 2012-03-06 03:41:20
請參見後期編輯 – user1072706 2012-03-06 05:38:51