Types 标准ml中的最大整数和最小整数

Types 标准ml中的最大整数和最小整数,types,max,option,sml,min,Types,Max,Option,Sml,Min,我想使用ml中的最大整数和最小整数,但我不能,我从库中看到了它的int类型选项,我如何使用它?我在这里看到的 我想用它来做一个max和min函数,每个方法都有一个整数列表,我必须分别返回max和min 我尝试了以下代码,但它们不起作用: - fun max x = = foldr (fn (a, b) => if a > b then a else b) INTEGER.minInt x; - fun max x = = foldr (fn (a, b) => i

我想使用ml中的最大整数和最小整数,但我不能,我从库中看到了它的int类型选项,我如何使用它?我在这里看到的

我想用它来做一个max和min函数,每个方法都有一个整数列表,我必须分别返回max和min

我尝试了以下代码,但它们不起作用:

- fun max x = 
=   foldr (fn (a, b) => if a > b then a else b) INTEGER.minInt x;

- fun max x = 
=   foldr (fn (a, b) => if a > b then a else b) minInt x;

- fun max x = 
=   foldr (fn (a, b) => if a > b then a else b) Int.minInt x;

有人知道如何使用它们吗?

Int.minInt
Int.maxInt
属于
Int选项的类型,而不是
Int

这意味着,如果没有最大值(或最小值),它们可以在
NONE
表格上,也可以在
SOME v
表格上,其中
v
是最大值(或最小值)

从期权中获得价值的方法有很多

  • 模式匹配
  • ,它将提取值。(注意,如果给定
    NONE
    ,则引发异常)
  • ,提取值,如果给定了
    NONE
    ,则使用默认值

但是,对于这个特定的问题,如果对输入进行一些模式匹配,则无需使用
Int.minInt
。此外,请记住输入列表为空的情况。

我尝试使用模式匹配,将列表设为x::xs,但它给了我一个匹配非穷尽的警告,它会是什么原因?新的乐趣是:乐趣max(x::xs)=Fordr(fn(a,b)=>如果a b,然后另一个b)x(x::xs);记住要考虑空列表。