以递归方式合并F#中的两个列表

Bob*_*y S 0 recursion f#

我期待写一个递归函数来合并到F#中的整数列表

我从这开始,但不知道接下来该做什么.

let rec merge xs ys =
    match xs with
    | [] -> ys
    | 

let li = [1;3;5;7;]
let ll = [2;4;5;8;]
Run Code Online (Sandbox Code Playgroud)

kvb*_*kvb 6

正如我在评论中所说,如果你同时在xs和ys上进行模式匹配,这可能是最简单的:

let rec merge xs ys = 
  match xs,ys with
  | [],l | l,[] -> l
  | x::xs', y::ys' -> 
     if x < y then x :: (merge xs' ys) //'
     else y :: (merge xs ys')          //'
Run Code Online (Sandbox Code Playgroud)