【正文】
r | title (Knight name) = Sir ^ name | title (Peasant name) = name。 Level Up! Level 4 ? 多態(tài)類型檢測 – 多態(tài)類型 的聲明 – 關(guān)于算法( Damas(1985)的博士論文) fun pairself x = (x,x)。) = prod(z, recip z39。, x*y39。 fun prod ((x,y), (x39。,y39。)) = (x+x39。 int int Level Up! Level 3 ? 模塊系統(tǒng) – 結(jié)構(gòu) ? 通過 ? 不同結(jié)構(gòu)里的標(biāo)識(shí)符可以相同 – 簽名 structure Complex : ARITH = struct type t = real*real。 (* 中綴優(yōu)先級(jí) *) infix 7 times。 – 記錄 ? val ZS = {name=“Zhang San”, age=20, major=“CS”}。 – 標(biāo)識(shí)符 ? 字母開頭,允許數(shù)字、下劃線、撇號(hào) ’ ? !%amp。 (*make a string*) print it。 Level 0 ? Hello world “Hello world!”。 – 聲明 函數(shù) ? fun circle_area (r) = pi*r*r。 Level 1 ? 序偶、元組、記錄 – 序偶 ? 向量 ( , ~) : real*real ? type vec = real * real。 fun (p xor q) = (p orelse q) andalso not (p andalso q)。 val fib = fn 。,y39。 fun diff ((x,y), (x39。) : t。 y*y39。 fun recip (x,y) = let val t:real = x*x + y*y in (x/t, ~y/t) end fun quo (z,z39。 signature ARITH = sig type t val zero : t val sum : t * t t val diff : t * t t val prod : t * t t val quo : t * t t end。 val snd = fn : ?a * ?b ?b Level Up! Level 5 ? List – 順序 [3, 4] – 可重復(fù) [3, 4, 3] – 元素類型 任意 [(1,”one”),(2,”two”),(3,”t