Hofstadter Figure-Figure sequences: Difference between revisions

Content deleted Content added
Added EchoLisp
Line 531: Line 531:
t.array.sort().equal(iota(1, 1001)).writeln;
t.array.sort().equal(iota(1, 1001)).writeln;
}</lang>
}</lang>

=={{header|EchoLisp}}==
<lang scheme>
(define (FFR n)
(+ (FFR (1- n)) (FFS (1- n))))
(define (FFS n)
(define next (1+ (FFS (1- n))))
(for ((k (in-naturals next)))
#:break (not (vector-search* k (cache 'FFR))) => k
))
(remember 'FFR #(0 1)) ;; init cache
(remember 'FFS #(0 2))
</lang>
{{out}}
<lang scheme>
(define-macro m-range [a .. b] (range a (1+ b)))

(map FFR [1 .. 10])
→ (1 3 7 12 18 26 35 45 56 69)

;; checking
(equal? [1 .. 1000] (list-sort < (append (map FFR [1 .. 40]) (map FFS [1 .. 960]))))
→ #t
</lang>


=={{header|Euler Math Toolbox}}==
=={{header|Euler Math Toolbox}}==