相关疑难解决方法(0)

帮我解释一下F#Matrix转置功能

有一个矩阵转置功能:

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#

14
推荐指数
2
解决办法
4251
查看次数

在F#中旋转或压缩seq <seq <'a >>

假设我有一系列序列,例如

{1, 2, 3}, {1, 2, 3}, {1, 2, 3}
Run Code Online (Sandbox Code Playgroud)

什么是旋转或拉链这个序列的最佳方法,所以我反而拥有,

{1, 1, 1}, {2, 2, 2}, {3, 3, 3}
Run Code Online (Sandbox Code Playgroud)

有没有一种可理解的方式这样做而不诉诸操纵底层IEnumerator<_>类型?

澄清一下,这些是seq<seq<int>>对象.每个序列(内部和外部)可以包含任意数量的项目.

f# pivot functional-programming sequence

5
推荐指数
1
解决办法
870
查看次数

标签 统计

f# ×2

functional-programming ×1

pivot ×1

sequence ×1