我有以下代碼:標準ML異常
- exception Negative of string;
> exn Negative = fn : string -> exn
- local fun fact 0 =1
| fact n = n* fact(n-1)
in
fun factorial n=
if n >= 0 then fact n
else
raise Negative "Insert a positive number!!!"
handle Negative msg => 0
end;
有什麼不對的呢??我收到錯誤:
! Toplevel input:
! handle Negative msg => 0
! ^
! Type clash: expression of type
! int
! cannot have type
! exn
我該如何解決?如果用戶輸入一個負數,我希望函數通過例外返回0。
我也想知道如何顯示一條消息,當用戶輸入一個負數,因爲print()返回單位,但函數的其餘部分返回int;