### Fibonacci Stream

Write a function that returns a stream that represents the fibonacci series. Your implementation should be pretty short!

```
def make_fibonacci_stream():
"""
>>> fib = make_fibonacci_stream()
>>> fib.first
0
>>> fib.rest.first
1
>>> fib.rest.rest.first
1
"""
"***YOUR CODE HERE***"
```

```
def make_fibonacci_stream():
"""
>>> fib = make_fibonacci_stream()
>>> fib.first
0
>>> fib.rest.first
1
>>> fib.rest.rest.first
1
"""
"***YOUR CODE HERE***"
def make_fib_helper(prev, current):
def compute_rest():
return make_fib_helper(current, prev + current)
return Stream(prev, compute_rest)
return make_fib_helper(0, 1)
```

Remember, we’re making a stream! That means that we need at least three components. We need to define a `compute_rest`

function that takes in `zero arguments`

and the function should return a `Stream`

object. With these three components in mind, we get to work. First, we realize that we need to keep track of two variables, `prev`

and `current`

. In order to keep track of these variables, we create a helper function that takes in two values. From there, we define our `compute_rest`

function that returns a new `Stream`

. Then, all that’s left is defining the starting values of the `make_fib_helper`

stream. This should be quite natural, we just need to remember the first two elements of the `fibonacci`

sequence!

I don't claim to be perfect so if you find an error on this page, please send me an email preferably with a link to this page so that I know what I need to fix!