Hofstadter Figure-Figure sequences: Difference between revisions

Content added Content deleted
(Factor solution)
Line 221: Line 221:
<pre>[1, 3, 7, 12, 18, 26, 35, 45, 56, 69]
<pre>[1, 3, 7, 12, 18, 26, 35, 45, 56, 69]
true</pre>
true</pre>
=={{header|Factor}}==
<lang factor>: next ( s r -- news newr )
2dup [ last ] bi@ + suffix
dup [
[ dup last 1 + dup ] dip member? [ 1 + ] when suffix
] dip ;</lang>

Tests:
<lang factor>( scratchpad ) { 2 } { 1 } 1000 [ next ] times ! Generate the first 1000 values of S and R

--- Data stack:
{ 2 4 5 6 8 9 10 11 13 14 15 16 17 19 20 ~986 more~ }
{ 1 3 7 12 18 26 35 45 56 69 83 98 114 131 150 ~986 more~ }
( scratchpad ) dup 10 head .
{ 1 3 7 12 18 26 35 45 56 69 }

--- Data stack:
{ 2 4 5 6 8 9 10 11 13 14 15 16 17 19 20 ~986 more~ }
{ 1 3 7 12 18 26 35 45 56 69 83 98 114 131 150 ~986 more~ }
( scratchpad ) [ 960 head ] [ 40 head ] bi* append ! Combine the first 960 terms of S and the first 40 of R

--- Data stack:
{ 2 4 5 6 8 9 10 11 13 14 15 16 17 19 20 ~985 more~ }
( scratchpad ) 1000 iota [ 1 + ] map [ dupd swap member? ] map t [ and ] reduce . clear
t</lang>

=={{header|Go}}==
=={{header|Go}}==
<lang go>package main
<lang go>package main