我已經在SML中編寫了下面的代碼,但遇到了編譯錯誤。 fun getTransIndex(t : TRANSACTION, (h::L) : TRANSLIST) : int =
let val i=0
in if (h=t) then i
else
if (getTransIndex(t,L)<>~1
then getTransIndex(
鑑於這些聲明我有在SML無法理解流牽引件: exception Bad of string;
fun from seed next = Cons(seed,fn() => from (next seed) next);
fun head (Nil) = raise Bad("got nil in head")
| head (Cons(a,b)) = a;
fun tail (N
datatype 'a stream =
Nil
| Cons of 'a * (unit -> 'a stream);
exception Bad of string;
fun from seed next = Cons (seed, fn() => from (next seed) next);
fun head (Nil) = raise Bad "got n
我想一個字符串比較的SML一Charlist,使用REPL我有這樣的: val alphabet = "abcdefghijklmnopqrstuvwxyz";
val charalphabet = explode alphabet;
val str = "the quick brown fox";
val res = Char.contains(str, charalphabet);
我正在經歷在Appel的「ML中的現代編譯器實現」一書中生成Tiger Parser的Ch3編程練習。我的tiger.grm文件是here。我試圖診斷的錯誤是由一元和二元減算子的規則引起的減少 - 減少衝突。這裏是YACC錯誤: error: state 128: reduce/reduce conflict between rule 48 and rule 46 on OR
error: st
下面是使用梯形方法計算定積分的SML代碼,給定輸入f =一元函數a & b =在積分下的範圍,以及n =除以子區間的數量進入的範圍。 fun integrate f a b n =
let val w = (b - a)/(real n)
fun genBlock c = let val BB = f c
val SB = f (c+w)
in (BB + SB) *