# Maurice Fonk

## Simple CoffeeScript Fibonacci With A Maximum Value

# Simple CoffeeScript Fibonacci With A Maximum Value

While it isn't anywhere close to a true, functional language, sometimes I'm happy with how terse I can get a function to be by using some of CoffeeScript's niceties.

```
# Simple recursive fib sequence with max value
fib = (seq, maxValue) ->
# Next item in sequence
next = if seq.length < 2 then 1 else seq.slice(-2, -1)[0] + seq.slice(-1)[0]
# Check for max and recurse if possible
if next < maxValue then fib seq.concat([next]), maxValue else seq
```

Only two lines, not bad. In Haskell you can famously write it as a sequence, of course.

```
fibSequence :: [Integer]
fibSequence = 1 : 1 : zipWith (+) fibSequence (tail fibSequence)
```