SML:这个函数猜测什么:bool * ('a * 'a) -> 'a * 'a 计算?

SML: What does this this function guess : bool * ('a * 'a) -> 'a * 'a calculate?

从以前的考试中我得到了这个 SML 函数,我应该给出这个函数计算的答案。

fun guess(e,(a,b)) = if e then (a,b) else (b,a)

签名是 bool * ('a * 'a) -> 'a * 'a 但我不知道这个函数的目的是什么 - 尽管它 returns 要么是 (a,b) 要么是 (b,a)。 谁能点亮我?

如果条件为真,则不理会 (a,b),否则将其反转。关于它计算的内容真的没有什么可说的了。至于边界似是而非的动机,有时需要以各种方式对有序对进行分类。例如,如果 a > b,guess(a<=b,(a,b)) 将反转 (a,b)。