RosettaCodeData/Task/Sierpinski-triangle/Scheme/sierpinski-triangle.scm
2024-10-16 18:07:41 -07:00

12 lines
392 B
Scheme

(define (sierpinski n)
(for-each
(lambda (x) (display (list->string x)) (newline))
(let loop ((acc (list (list #\*))) (spaces (list #\ )) (n n))
(if (zero? n)
acc
(loop
(append
(map (lambda (x) (append spaces x spaces)) acc)
(map (lambda (x) (append x (list #\ ) x)) acc))
(append spaces spaces)
(- n 1))))))