我必须找到至少一个元组列表,但我只想返回元组的snd
元素的最小值,而不是整个元组。不幸的是,我在以下代码中遇到以下错误,我不知道为什么。 l参数是元组(float * float)
let rec minRight l = match l with
| [] -> raise (Arg.Bad "minRight: empty list")
| [x]-> x
| (_,y)::xs -> min y (minRight xs)
错误:
| (_,y)::xs -> min y (minRight xs)
Error: This expression has type 'a but an expression was expected of type
'b * 'a
提前致谢。
答案 0 :(得分:2)
除了之前答案中提到的问题外,还有一个问题:行
| [x]-> x
返回一个元组,而你说你想“返回元组的snd元素[s]的最小值”。
答案 1 :(得分:0)
我想也许你的问题是你命名你的函数min
,但你也想使用标准的OCaml函数min
。这可能吗?
OCaml没有重载(作为补偿,它具有参数多态性)。所以你需要使用不同的名称。