2017-03-06 61 views
0

這是我的代碼,並且它不斷給我提供未綁定的錯誤消息。SML,未綁定變量或構造函數

我其實是真正的新SML。所以,我真的不知道如何解決它。

看起來好像使用a和b是壞事。

我想聲明ab

這樣

a : int; 
b : int; 

,但仍然無法正常工作。

我該如何解決這個問題?

+0

請發佈您的代碼,而不是鏈接到它。 –

+0

請不要發佈或鏈接到文字的圖片。我們的祖先給了我們複製和粘貼。瞭解如何使用它。 – molbdnilo

回答

1

這只是一個語法問題。你所缺少的全部代碼是|來區分calculate的條款。只需在第5-8行的開頭添加一個。

1

除此之外安德烈亞斯提到,你不能+-*div運算符適用於型calctree的價值功能的條款之間缺少|秒。您需要首先使用您的函數將每個ab減少爲整數。例如,

datatype ops = PLUS | MINUS | TIMES | DIV 
datatype calctree = LEAF of int | CALC of ops * calctree * calctree 

fun getOp PLUS = op + 
    | getOp MINUS = op - 
    | getOp TIMES = op * 
    | getOp DIV = op div 

fun calc (LEAF x) = x 
    | calc (CALC (oper, a, b)) = getOp oper (calc a, calc b)