Zig-zag matrix: Difference between revisions

(→‎{{header|Raku}}: Fix up internal link)
Line 5,343:
10 18 19 23 24
</pre>
 
=={{header|Standard ML}}==
<lang Standard ML>fun rowprint r = (List.app (fn i => print (StringCvt.padLeft #" " 3 (Int.toString i))) r;
print "\n");
fun zig lst M = List.app rowprint (lst M);
 
fun sign t = if t mod 2 = 0 then ~1 else 1;
 
fun zag n = List.tabulate (n,
fn i=> rev ( List.tabulate (n,
fn j =>
let val t = n-j+i and u = n+j-i in
if i <= j
then t*t div 2 + sign t * ( t div 2 - i )
else n*n - 1 - ( u*u div 2 + sign u * ( u div 2 - n + 1 + i) )
end
)));
 
zig zag 5 ;</lang>
0 1 5 6 14
2 4 7 13 15
3 8 12 16 21
9 11 17 20 22
10 18 19 23 24
val it = () : unit
 
 
 
=={{header|Stata}}==
Anonymous user