Calkin-Wilf sequence: Difference between revisions

Content added Content deleted
(Added Forth entry)
(Added Quackery.)
Line 1,861: Line 1,861:


83116/51639 is the 123_456_789'th term.</pre>
83116/51639 is the 123_456_789'th term.</pre>

=={{header|Quackery}}==

<lang Quackery> [ $ "bigrat.qky" loadfile ] now!

[ ' [ [ 1 1 ] ]
swap 1 - times
[ dup -1 peek do
2dup proper 2drop
2 * n->v
2swap -v 1 n->v v+ v+
1/v join nested join ] ] is calkin-wilf ( n --> [ )

[ 1 & ] is odd ( n --> b )

[ [] unrot
[ proper
2swap join unrot
over 0 != while
1/v again ]
2drop ] is cf ( n/d --> [ )

[ dup size odd not if
[ -1 split do
1 - join
1 join ] ] is oddcf ( [ --> [ )

[ 0 swap
reverse witheach
[ i odd iff
<< done
dup dip <<
bit 1 - | ] ] is rl->n ( [ --> n )

[ cf oddcf rl->n ] is cw-term ( n/d --> n )

20 calkin-wilf
witheach
[ do vulgar$ echo$ sp ]
cr cr
83116 51639 cw-term echo</lang>

{{out}}

<pre>1/1 1/2 2/1 1/3 3/2 2/3 3/1 1/4 4/3 3/5 5/2 2/5 5/3 3/4 4/1 1/5 5/4 4/7 7/3 3/8

123456789</pre>


=={{header|Raku}}==
=={{header|Raku}}==