The Forced Indentation Of Overlapping, Gapped Tile Heaps
scheme@(guile-user)> (display ((lambda (rec xjoin extract index spec chars n) ((lambda (xjoin index lines columns) ((lambda (symbol) (xjoin lines (lambda (k) (string-append (xjoin columns (lambda (j) (symbol k j)) "") "\n")) "")) (lambda (k j) (extract chars (index (- k (* 2 n)) (- j (* 4 n) -1)) 1)))) (lambda (n fun sep) (rec xjoin n fun sep "")) (lambda (k j) (rec index spec k j)) (* 4 n) (- (* 8 n) 1))) (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 (center? fromspec) (lambda (self spec k j) (if (center? k j) (fromspec spec k j) (if (= j 0) (self self spec (- (modulo (+ k 2) 4) 2) 0) (self self spec (+ k (if (< k 0) 2 -2)) (+ j (if (< j 0) 4 -4))))))) (lambda (k j) (and (<= -2 k 1) (<= -3 j 3))) (lambda (spec k j) (vector-ref spec (+ (* 7 (+ k 2)) j 3)))) #(3 1 8 1 8 1 4 9 0 0 0 0 0 10 9 0 0 0 0 0 10 5 1 7 1 7 1 6) " ─│┌┐└┘┬┴┤├" 6))
┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐
┤ ├─┤ ├─┤ ├─┤ ├─┤ ├─┤ ├
┤ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ├
└─┬─┤ ├─┤ ├─┤ ├─┤ ├─┤ ├─┬─┘
┌─┴─┤ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ├─┴─┐
┤ └─┬─┤ ├─┤ ├─┤ ├─┤ ├─┬─┘ ├
┤ ┌─┴─┤ ┌─┴─┴─┐ ┌─┴─┴─┐ ┌─┴─┴─┐ ├─┴─┐ ├
└─┬─┤ └─┬─┤ ├─┤ ├─┤ ├─┬─┘ ├─┬─┘
┌─┴─┤ ┌─┴─┤ ┌─┴─┴─┐ ┌─┴─┴─┐ ├─┴─┐ ├─┴─┐
┤ └─┬─┤ └─┬─┤ ├─┤ ├─┬─┘ ├─┬─┘ ├
┤ ┌─┴─┤ ┌─┴─┤ ┌─┴─┴─┐ ├─┴─┐ ├─┴─┐ ├
└─┬─┤ └─┬─┤ └─┬─┤ ├─┬─┘ ├─┬─┘ ├─┬─┘
┌─┴─┤ ┌─┴─┤ ┌─┴─┤ ├─┴─┐ ├─┴─┐ ├─┴─┐
┤ └─┬─┤ └─┬─┤ └─┬─┬─┘ ├─┬─┘ ├─┬─┘ ├
┤ ┌─┴─┤ ┌─┴─┤ ├─┤ ├─┴─┐ ├─┴─┐ ├
└─┬─┤ └─┬─┤ └─┬─┬─┘ └─┬─┬─┘ ├─┬─┘ ├─┬─┘
┌─┴─┤ ┌─┴─┤ ├─┤ ├─┤ ├─┴─┐ ├─┴─┐
┤ └─┬─┤ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ ├─┬─┘ ├
┤ ┌─┴─┤ ├─┤ ├─┤ ├─┤ ├─┴─┐ ├
└─┬─┤ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ ├─┬─┘
┌─┴─┤ ├─┤ ├─┤ ├─┤ ├─┤ ├─┴─┐
┤ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ ├
┤ ├─┤ ├─┤ ├─┤ ├─┤ ├─┤ ├
└─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘ └─┬─┬─┘
scheme@(guile-user)>