gpt4 book ai didi

sml - 处理 ML 中的异常

转载 作者:行者123 更新时间:2023-12-04 15:44:33 25 4
gpt4 key购买 nike

大家,我正在尝试了解异常在 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.";

可能出了什么问题?提前感谢您的帮助。

最佳答案

您需要确保 factorial_driver 具有一致的类型。非异常情况返回 int,因此 ML 推断函数的类型为 unit -> int,但异常情况(即 print 表达式)返回 unit,而不是 int

一般来说,你基本上需要在所有情况下都返回一个相同类型的值。

关于sml - 处理 ML 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4497243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com