Recaman's sequence: Difference between revisions

Added Quackery.
m (Removed inbalanced parenthesis in uBasic/4tH)
(Added Quackery.)
Line 1,892:
Number of Recaman terms needed to generate all integers from [0..1000]:
328002</pre>
 
=={{header|Quackery}}==
 
<lang Quackery>
[ stack 0 ] is seennumbers ( --> s )
 
[ bit seennumbers take
| seennumbers put ] is seen ( n --> )
 
[ dup 0 < iff
[ drop true ] done
bit seennumbers share
& 0 != ] is seen? ( n --> b )
 
[ 1+ bit 1 -
seennumbers share
over & = ] is allseen? ( n --> b )
 
[ stack [ ] ] is repeats ( --> s )
 
[ 1 seennumbers replace
[] repeats replace
' [ 0 ] 1 ] is startseq ( --> [ n )
 
[ over -1 peek
over - dup seen? if
[ over 2 * +
dup seen? if
[ repeats take
over join
repeats put ] ]
dup seen
swap dip join
1+ ] is nextterm ( [ n --> [ n )
say "first 15 terms: "
startseq
14 times nextterm
drop echo cr
say "first duplicated term: "
startseq
[ repeats share [] = while
nextterm
again ]
drop -1 peek echo cr
say "terms needed to generate 0 to 1000: "
startseq
[ nextterm
1000 allseen? until ]
nip 1 - echo cr
</lang>
 
{{out}}
 
<pre>first 15 terms: [ 0 1 3 6 2 7 13 20 12 21 11 22 10 23 9 ]
first duplicated term: 42
terms needed to generate 0 to 1000: 328002
</pre>
 
 
=={{header|R}}==
1,496

edits