Thue-Morse
Thue-Morse is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
Make Thue-Morse sequence.
AWK
<lang AWK>BEGIN{print x="0"} {gsub(/./," &",x);gsub(/ 0/,"01",x);gsub(/ 1/,"10",x);print x}</lang>
C++
<lang cpp>
- include <iostream>
- include <iterator>
- include <vector>
int main( int argc, char* argv[] ) {
std::vector<bool> t; t.push_back( 0 ); size_t len = 1; while( len < 80 ) { std::copy( t.begin(), t.end(), std::ostream_iterator<bool>( std::cout, "" ) ); std::cout << "\n"; for( size_t x = 0; x < len; x++ ) t.push_back( t[x] ? 0 : 1 ); len = t.size(); } return 0;
} </lang>
- Output:
0 01 0110 01101001 0110100110010110 01101001100101101001011001101001 0110100110010110100101100110100110010110011010010110100110010110
Perl 6
<lang perl6>my @tm := 0, -> *@s { @s.map({ + not $_ }) } ... *;
say @tm[^64].join;</lang>
- Output:
0110100110010110100101100110100110010110011010010110100110010110
SQL
This example is using SQLite. <lang SQL>with recursive a(a) as (select '0' union all select replace(replace(hex(a),'30','01'),'31','10') from a) select * from a;</lang>
zkl
<lang zkl>fcn next(str){ str.pump(str,fcn(c){ (0x61 - c.toAsc()).toChar() }) }</lang> <lang zkl>str:="0"; do(7){ str.println(); str=next(str) }</lang>
- Output:
0 01 0110 01101001 0110100110010110 01101001100101101001011001101001 0110100110010110100101100110100110010110011010010110100110010110