(def sequence (list 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1)) (fun reverse (ls) (fun rev-acc (ls acc) (if (nil? ls) acc (rev-acc (cdr ls) (cons (car ls) acc)))) (rev-acc ls '())) (fun print-line (seq) (if (or (nil? seq) (= 0 (car seq))) (print " ") (print "🖤")) (if (not (nil? seq)) (print-line (cdr seq)))) (fun rule-110 (seq n) (print-line seq) (newline) (fun new-generation (lst seq) (def a (if (nil? seq) 0 (car seq))) (def b (if (or (nil? seq) (nil? (cdr seq))) 0 (car (cdr seq)))) (def c (if (or (nil? seq) (nil? (cdr seq)) (nil? (cdr (cdr seq)))) 0 (car (cdr (cdr seq))))) (def number (+ (* a 2 2) (* b 2) c)) (def cell (cond ((= number 0) 0) ((= number 1) 1) ((= number 2) 1) ((= number 3) 1) ((= number 4) 0) ((= number 5) 1) ((= number 6) 1) ((= number 7) 0))) (if (nil? (cdr seq)) lst (new-generation (cons cell lst) (cdr seq)))) (def seq (cons 0 (reverse (new-generation '() seq)))) (if (= n 0) () (rule-110 seq (- n 1)))) (rule-110 sequence 25)