exception OutOfRange of int*int; fun comb1(n,m) = if n <= 0 then raise OutOfRange(n,m) else if m < 0 orelse m > n then raise OutOfRange(n,m) else if m=0 orelse m=n then 1 else comb1(n-1,m) + comb1(n-1,m-1); fun comb(n,m) = comb1(n,m) handle OutOfRange(0,0) => 1 | OutOfRange(n,m) => ( print("out of range: n="); print(Int.toString(n)); print(" m="); print(Int.toString(m)); print("\n"); 0 ); comb(4,2); comb(3,4); comb(0,0);