我是 OCaml 的新手,我正在审核一堂课。我有一个作业提示,上面写着:“merge xs ys 采用两个整数列表,每个列表按升序排序,并返回一个按排序顺序的合并列表。”
我已经成功编写了一个有效的函数:
let rec merge xs ys = match xs with
| [] -> ys
| hxs::txs -> if hxs <= (match ys with
| [] -> hxs
| hys::tys -> hys)
then hxs :: merge txs ys
else match ys with
| [] -> xs
| hys::tys -> hys :: merge xs tys in
merge [-1;2;3;100] [-1;5;1001]
;;
我想知道我的代码是否被认为是可接受的 OCaml 样式?我想避免养成任何坏习惯。感觉组合密集,但也许那是因为我仍然不习惯 OCaml。
谢谢。