有一个矩阵转置功能:
let rec transpose = function
| (_::_)::_ as M -> List.map List.head M :: transpose (List.map List.tail M)
| _ -> []
[[1; 2; 3]; [4; 5; 6]; [7; 8; 9]] |> transpose |> printfn "%A"
Run Code Online (Sandbox Code Playgroud)
它工作正常.
是什么(_ :: _):: _什么意思?
我不明白整个代码!
谁能解释一下?
谢谢!
我找到了答案:
(_ :: _):: _是匹配int类型列表的值的模式
如果我写:
let rec transpose (M:int list list) =
match M with
| hd::tl -> List.map List.head M :: transpose (List.map List.tail …Run Code Online (Sandbox Code Playgroud) f# ×1