Matrix transposition: Difference between revisions

Content added Content deleted
m (Source and output ormatting.)
(Updated to work with Nim 1.4: suppressed ".. <".)
Line 2,595: Line 2,595:
<lang nim>proc transpose[T](s: seq[seq[T]]): seq[seq[T]] =
<lang nim>proc transpose[T](s: seq[seq[T]]): seq[seq[T]] =
result = newSeq[seq[T]](s[0].len)
result = newSeq[seq[T]](s[0].len)
for i in 0 .. < s[0].len:
for i in 0 .. s[0].high:
result[i] = newSeq[T](s.len)
result[i] = newSeq[T](s.len)
for j in 0 .. < s.len:
for j in 0 .. s.high:
result[i][j] = s[j][i]
result[i][j] = s[j][i]

let a = @[@[ 0, 1, 2, 3, 4],
let a = @[@[ 0, 1, 2, 3, 4],
@[ 5, 6, 7, 8, 9],
@[ 5, 6, 7, 8, 9],
@[ 1, 0, 0, 0,42]]
@[ 1, 0, 0, 0, 42]]
echo transpose(a)</lang>
echo transpose(a)</lang>
{{out}}
{{out}}