15 lines
537 B
Forth
15 lines
537 B
Forth
//Produce a zig zag matrix - Nigel Galloway: April 7th., 2015
|
|
let zz l a =
|
|
let N = Array2D.create l a 0
|
|
let rec gng (n, i, g, e) =
|
|
N.[n,i] <- g
|
|
match e with
|
|
| _ when i=a-1 && n=l-1 -> N
|
|
| 1 when n = l-1 -> gng (n, i+1, g+1, 2)
|
|
| 2 when i = a-1 -> gng (n+1, i, g+1, 1)
|
|
| 1 when i = 0 -> gng (n+1, 0, g+1, 2)
|
|
| 2 when n = 0 -> gng (0, i+1, g+1, 1)
|
|
| 1 -> gng (n+1, i-1, g+1, 1)
|
|
| _ -> gng (n-1, i+1, g+1, 2)
|
|
gng (0, 0, 0, 2)
|