RosettaCodeData/Task/Spiral-matrix/PicoLisp/spiral-matrix.l
Ingy döt Net 68f8f3e56b all tasks
2013-04-11 01:07:29 -07:00

19 lines
499 B
Text

(load "@lib/simul.l")
(de spiral (N)
(prog1 (grid N N)
(let (Dir '(north east south west .) This 'a1)
(for Val (* N N)
(=: val Val)
(setq This
(or
(with ((car Dir) This)
(unless (: val) This) )
(with ((car (setq Dir (cdr Dir))) This)
(unless (: val) This) ) ) ) ) ) ) )
(mapc
'((L)
(for This L (prin (align 3 (: val))))
(prinl) )
(spiral 5) )