[ prog / sol / mona ]

prog


The Forced Indentation Of Code

137 2022-07-22 10:29

gapped quadrant flower garden

scheme@(guile-user)> (display ((lambda (rec xjoin extract index patch chars band n) ((lambda (xjoin lines columns cycle) ((lambda (symbol) (xjoin lines (lambda (k) (string-append (xjoin columns (lambda (j) (symbol k j)) "") "\n")) "")) (lambda (k j) (extract chars (index patch band cycle n k j) 1)))) (lambda (n fun sep) (rec xjoin n fun sep "")) (+ (* 2 n) 1) (+ (* 4 n) 1) (string-length chars))) (lambda (f . args) (apply f (cons f args))) (lambda (self n fun sep acc) (if (<= n 0) "" (if (= n 1) (string-append (fun 0) acc) (self self (- n 1) fun sep (string-append sep (fun (- n 1)) acc))))) (lambda (str pos len) (substring str pos (+ pos len))) ((lambda (div) (lambda (patch band cycle n k j) ((lambda (k j) (if (or (= (modulo (+ k j) band) 0) (= (modulo (- k j) band) 0)) 0 (+ (patch (- cycle 1) (div (+ k j) band) (div (- k j) band)) 1))) (- k n) (- j (* 2 n))))) (lambda (a b) (quotient (- a (modulo a b)) b))) (lambda (cycle x y) (modulo (if (and (>= x 1) (<= (- x) y (- x 1))) 1 (if (and (<= y -2) (<= (+ y 1) x (- -2 y))) 2 (if (and (<= x -2) (<= (+ x 1) y (- -2 x))) 3 (if (and (>= y 1) (<= (- y) x (- y 1))) 4 0)))) cycle)) "🌵🌹🌺🌼🌸🌻🌷💮" 6 9))

The flower garden has a natural partition into quadrants along the cactus diagonals that cross on the central cactus. Those are the quadrants used for the butterfly invasion >>132. The gapped quadrants radiate out from the sides of the central 2x2 block of flower patches. These were chosen so that they are prepared to host a shape that is two cells wide on its top row and that widens by two cells on subsequent rows.

separate output >>136 for 413 >>127

larger version: http://paste.textboard.org/e44ebf68/raw
apply
* { line-height: 1em; }
to the larger version for more symmetry

267


VIP:

do not edit these