Hofstadter Q sequence: Difference between revisions

Added Quackery.
(Added Arturo implementation)
(Added Quackery.)
Line 2,726:
print("Q(i+1) < Q(i) for i [1..100000] is true %i times." %
sum([q.seq[i] > q.seq[i + 1] for i in range(1, 100000)]))</lang>
 
=={{header|Quackery}}==
 
<lang Quackery> [ 2dup dup 0 < if 1+
abs swap size <
not if
[ drop size 1+ number$
$ "Term " swap join
$ " of the Q sequence is not defined."
join message put bail ]
peek ] is qpeek ( [ n --> x )
 
[ dup dup -1 qpeek negate qpeek
dip [ dup dup -2 qpeek negate qpeek ]
+ join ] is next-q ( [ --> [ )
 
[ dup size 2 < iff
[ drop 0 ] done
0 swap behead swap
witheach
[ tuck > if [ dip 1+ ] ]
drop ] is drops ( [ --> n )
 
0 backup
[ ' [ 1 1 ]
998 times next-q
dup
-1 split swap 10 split drop
witheach [ echo sp ]
say "... "
0 peek echo cr
99000 times next-q
drops echo
say " decreasing terms" ]
bailed if
[ message take cr echo$ cr ]</lang>
 
{{out}}
 
<pre>1 1 2 3 3 4 5 5 6 6 ... 502
49798 decreasing terms</pre>
 
 
=={{header|R}}==
1,462

edits