Fibonacci n-step number sequences: Difference between revisions

Content deleted Content added
Added PicoLisp
Sonia (talk | contribs)
Go solution
Line 272: Line 272:
}
}
}</lang>
}</lang>

=={{header|Go}}==
Solution using a separate goroutine.
<lang go>package main

import "fmt"

func g(i []int, c chan int) {
var sum int
b := append([]int{}, i...)
for _, t := range b {
c <- t
sum += t
}
for {
for j, t := range b {
c <- sum
b[j], sum = sum, sum+sum-t
}
}
}

func main() {
for _, s := range []struct {
seq string
i []int
} {
{"Fibonacci", []int{1, 1}},
{"Tribonacci", []int{1, 1, 2}},
{"Tetranacci", []int{1, 1, 2, 4}},
{"Lucas", []int{2, 1}},
} {
fmt.Printf("%10s:", s.seq)
c := make(chan int)
go g(s.i, c)
for j := 0; j < 10; j++ {
fmt.Print(" ", <-c)
}
fmt.Println()
}
}</lang>
{{out}}
<pre>
Fibonacci: 1 1 2 3 5 8 13 21 34 55
Tribonacci: 1 1 2 4 7 13 24 44 81 149
Tetranacci: 1 1 2 4 8 15 29 56 108 208
Lucas: 2 1 3 4 7 11 18 29 47 76
</pre>


=={{header|Haskell}}==
=={{header|Haskell}}==