在Erlang中转置2维矩阵

Mag*_*ist 11 erlang functional-programming

给定如下的矩阵,将其转换为90度,进入下面的第二个矩阵.你会如何以最干净的方式做到这一点?简洁/简洁/清晰的解决方案,其中易于掌握的点是优选的.

[[A1,A2,A3],
 [B1,B2,B3],
 [C1,C2,C3]]
Run Code Online (Sandbox Code Playgroud)

[[A1,B1,C1],
 [A2,B2,C2],
 [A3,B3,C3]]
Run Code Online (Sandbox Code Playgroud)

编辑:我意识到原始问题并不清楚.我想知道如何在Erlang中做到这一点.

Kis*_*rke 16

简化已经给出的解决方案,您可以在以下简短的范围内完成:

-module(transp).

-export([transpose/1]).

transpose([[]|_]) -> [];
transpose(M) ->
  [lists:map(fun hd/1, M) | transpose(lists:map(fun tl/1, M))].
Run Code Online (Sandbox Code Playgroud)