Thue-Morse: Difference between revisions
Content added Content deleted
(Added Sidef) |
(Added XLISP) |
||
Line 602: | Line 602: | ||
puts $a |
puts $a |
||
}</lang> |
}</lang> |
||
=={{header|XLISP}}== |
|||
<lang lisp>(defun thue-morse (n) |
|||
(defun flip-bits (s) |
|||
(defun flip (l) |
|||
(if (not (null l)) |
|||
(cons |
|||
(if (equal (car l) #\1) |
|||
#\0 |
|||
#\1) |
|||
(flip (cdr l))))) |
|||
(list->string (flip (string->list s)))) |
|||
(if (= n 0) |
|||
"0" |
|||
(string-append (thue-morse (- n 1)) (flip-bits (thue-morse (- n 1)))))) |
|||
; define RANGE, for testing purposes |
|||
(defun range (x y) |
|||
(if (< x y) |
|||
(cons x (range (+ x 1) y)))) |
|||
; test THUE-MORSE by printing the strings it returns for n = 0 to n = 6 |
|||
(mapcar (lambda (n) (print (thue-morse n))) (range 0 7))</lang> |
|||
{{out}} |
|||
<pre>"0" |
|||
"01" |
|||
"0110" |
|||
"01101001" |
|||
"0110100110010110" |
|||
"01101001100101101001011001101001" |
|||
"0110100110010110100101100110100110010110011010010110100110010110"</pre> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |