Fibonacci sequence: Difference between revisions
Content added Content deleted
Space Ghost (talk | contribs) |
Space Ghost (talk | contribs) |
||
Line 7,054: | Line 7,054: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
=== Iterative with Buffer === |
|||
⚫ | |||
<syntaxhighlight lang="haskell"> |
|||
import Buffer from "buffer" |
|||
import String from "string" |
|||
let fib = j => { |
|||
// set-up minimal, growable buffer |
|||
let buf = Buffer.make(j * 2) |
|||
let mut fnow = 0, fnext = 1 |
|||
for (let mut n = 0; n <= j; n += 1) { |
|||
if (n == 0 || n == 1) { |
|||
Buffer.addChar(' ', buf) |
|||
Buffer.addString(toString(n), buf) |
|||
} else { |
|||
let tempf = fnow + fnext |
|||
fnow = fnext |
|||
fnext = tempf |
|||
Buffer.addChar(' ', buf) |
|||
Buffer.addString(toString(fnext), buf) |
|||
} |
|||
} |
|||
// stringify buffer and return |
|||
Buffer.toString(buf) |
|||
} |
|||
let output = fib(20) |
|||
print(output) |
|||
</syntaxhighlight> |
|||
⚫ | |||
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 |
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 |
||
</pre> |
</pre> |