(define min
(lambda (l)
(cond
((null? l) '())
((null? (cdr l)) (car l))
(#t (let ((a (car l))
(b (min (cdr l))))
(if (< b a) b a))))))
我试图将前面的Scheme代码找到列表中最小的元素转换为OCaml代码,我到目前为止有以下内容:将计划转换为OCaml? ('列表vs'列表清单 - >'列表清单)
let minList x =
match x with
| [] -> []
| hd::tl when tl = [] -> hd
| hd::tl -> if minList tl < hd then minList tl else hd
但是,我得到,说:“这表达的类型为“列表中的一个错误,但预计'a list list -> 'a list list
类型的表达式。
我是一个初学者到功能性的语言和任何帮助将不胜赞赏。