Sha256: 2d2ad7b8af95b619f43053e580a2b3a4264034e716a0af790457db842a0248ed
Contents?: true
Size: 902 Bytes
Versions: 319
Compression:
Stored size: 902 Bytes
Contents
module Transpose let transpose (input: string) = let rows = input.Split '\n' let transposedCoordinates = rows |> Array.mapi (fun row str -> str |> Seq.mapi (fun col char -> (col, (row, char))) |> Seq.toArray) |> Array.concat let groupedByTransposedColumns = transposedCoordinates |> Array.groupBy fst |> Array.map (fun (row, chars) -> (row, chars |> Array.map snd)) let transposedColToRow (input: (int * char)[]) = let maxCol = input |> Array.map fst |> Array.max let findCharacter col = match Array.tryFind (fun (c, _) -> c = col) input with | Some y -> snd y | None -> ' ' [| 0..maxCol |] |> Array.map findCharacter |> System.String groupedByTransposedColumns |> Seq.map (snd >> transposedColToRow) |> String.concat "\n"
Version data entries
319 entries across 319 versions & 1 rubygems