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 |