RosettaCodeData/Task/Fibonacci-n-step-number-sequences/FunL/fibonacci-n-step-number-sequences.funl
2016-12-05 23:44:36 +01:00

31 lines
550 B
Text

import util.TextTable
native scala.collection.mutable.Queue
def fibLike( init ) =
q = Queue()
for i <- init do q.enqueue( i )
def fib =
q.enqueue( sum(q) )
q.dequeue() # fib()
0 # fib()
def fibN( n ) = fibLike( [1] + [2^i | i <- 0:n-1] )
val lucas = fibLike( [2, 1] )
t = TextTable()
t.header( 'k', 'Fibonacci', 'Tribonacci', 'Tetranacci', 'Lucas' )
t.line()
for i <- 1..5
t.rightAlignment( i )
seqs = (fibN(2), fibN(3), fibN(4), lucas)
for k <- 1..10
t.row( ([k] + [seqs(i)(k) | i <- 0:4]).toIndexedSeq() )
print( t )