Fibonacci n-step number sequences: Difference between revisions

added Scheme example
m (→‎{{header|Perl 6}}: fixed 'nacci' routine)
(added Scheme example)
Line 2,902:
</pre>
'''Note:''' In Scala, ''Stream'' is a lazy list. if you don't need the sequence saved in memory, just to iterate over members, you may convert the logic to use ''Iterator'' instead of ''Stream''.
 
=={{header|Scheme}}==
 
<lang scheme>
(import (scheme base)
(scheme write)
(srfi 1))
 
;; uses n-step sequence formula to
;; continue lst until of length num
(define (n-fib lst num)
(let ((n (length lst)))
(do ((result (reverse lst)
(cons (fold + 0 (take result n))
result)))
((= num (length result)) (reverse result)))))
 
;; display examples
(do ((i 2 (+ 1 i)))
((> i 4) )
(display (string-append "n = "
(number->string i)
": "))
(display (n-fib (cons 1 (list-tabulate (- i 1) (lambda (n) (expt 2 n))))
15))
(newline))
 
(display "Lucas: ")
(display (n-fib '(2 1) 15))
(newline)
</lang>
 
{{out}}
<pre>
n = 2: (1 1 2 3 5 8 13 21 34 55 89 144 233 377 610)
n = 3: (1 1 2 4 7 13 24 44 81 149 274 504 927 1705 3136)
n = 4: (1 1 2 4 8 15 29 56 108 208 401 773 1490 2872 5536)
Lucas: (2 1 3 4 7 11 18 29 47 76 123 199 322 521 843)
</pre>
 
=={{header|Seed7}}==
342

edits