2

我有问题:编写一个名为 minimum6 的函数,它接受 6 个参数并返回最小的一个。示例:最小值 6 10 20 30 40 50 60 = 10

这就是我到目前为止得到的:

让 min ab = if a < b then a else b;; 让 minimum6 x1 x2 x3 x4 x5 x6 = min (min (min (min (min x1 x2) x3) x4) x5) x6);;

但是,我得到'这个表达式的类型为 int,但预期的表达式类型为 'a -> 'b',指向第一个 '10' 我是该语言的新手,我做错了什么?是因为我在函数中使用了函数吗?

4

1 回答 1

1

你有一些括号问题。:)

你也可以做一些更一般的事情。就像是:

let rec list_min min = function
  | [] -> min
  | x::xs -> if x < min then list_min x xs else list_min min xs

let min6 x1 .. x6 = list_min x1 [x2; ...; x6]
于 2013-10-09T18:53:30.197 回答