0
的標準ML我有這樣的代碼:如何理解這段代碼在新澤西州
exception BadToken of string*(string list)
fun
advance ts = let val h = hd (!ts)
val t = tl (!ts)
in
ts := t;
h
end
fun
eat t ts = if (hd (!ts)) = t then (advance ts; t)
else raise BadToken (t,!ts)
我不明白是什麼:=
,!
TS前後;
代表。在解釋器中,提前的數據類型是:val advance = fn : 'a list ref -> 'a
我不明白'a list ref
的含義。
sml中的函數可以有多個語句嗎?我記得它只能返回一個表達式。 – beginner 2015-04-01 03:48:22
它只能返回一個表達式,但'ts:= t'不會返回任何東西,因爲它是單元類型,它不能保存信息。 – 2015-04-01 10:18:11
非常感謝你:) – beginner 2015-04-02 04:52:39