[ prog / sol / mona ]

prog


The Forced Indentation Of Code

139 2022-07-26 12:12

Upgrade of >>137 with a function controlling the flower patches in the quadrants instead of having uniform quadrants.

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 (quadrant) (lambda (cycle x y) (modulo (if (and (>= x 1) (<= (- x) y (- x 1))) (if (quadrant (if (>= y 0) (- -1 y) (- y)) (- x 1)) 1 0) (if (and (<= y -2) (<= (+ y 1) x (- -2 y))) (if (quadrant (if (>= x 0) (- -1 x) (- x)) (- -2 y)) 2 0) (if (and (<= x -2) (<= (+ x 1) y (- -2 x))) (if (quadrant (if (>= y 0) (+ y 1) y) (- -2 x)) 3 0) (if (and (>= y 1) (<= (- y) x (- y 1))) (if (quadrant (if (>= x 0) (+ x 1) x) (- y 1)) 4 0) 0)))) cycle))) (lambda (x y) (or (even? y) (= (abs x) (+ y 1))))) "🌵🌹🌺🌼🌸🌻🌷 💮" 6 9))

separate output >>138 for 413 >>127

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

267


VIP:

do not edit these