Sml 在ML中处理异常
各位,我正试图了解异常在ML中是如何工作的,但我有一个奇怪的错误,我无法找出问题所在:Sml 在ML中处理异常,sml,smlnj,Sml,Smlnj,各位,我正试图了解异常在ML中是如何工作的,但我有一个奇怪的错误,我无法找出问题所在: exception Factorial fun checked_factorial n = if n < 0 then raise Factorial else n; fun factorial_driver () = checked_factorial(~4) handle Factorial => print "Out of range."; 异常
exception Factorial
fun checked_factorial n =
if n < 0 then
raise Factorial
else n;
fun factorial_driver () =
checked_factorial(~4)
handle
Factorial => print "Out of range.";
异常阶乘
复因子n=
如果n<0,则
提升阶乘
else n;
有趣的阶乘驱动程序()=
检查因子(~4)
手柄
阶乘=>打印“超出范围”;
可能出了什么问题?提前感谢您的帮助。您需要确保
factorial\u驱动程序的类型一致。非异常情况返回int
,因此ML推断函数类型为unit->int
,但异常情况(即print
表达式)返回unit
,而不是int
通常,在所有情况下,基本上都需要返回相同类型的值