RosettaCodeData/Task/Sierpinski-triangle/Scheme/sierpinski-triangle.ss
2023-07-01 13:44:08 -04: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))))))