I've recently failed a coding challenge and I'd like to know the solution to the problem.

Here's what was asked of me (from memory as I do not have access to the question anymore):

Create a function that takes an array of integers and sums the first and last item, then the second and second to last, and so on. You must do this until there's only two items left in the returning array.

Example:

```
Input: [1, 4, 2, 3, 6, 10]

Returns: [16, 10]

```

Because:

```
[(1 + 10), (4 + 6), (2 + 3)] =

[11, 10, 5] =>

[(11 + 5), 10] =

[16, 10]

```

Example 2:

```
Input: [-1, 3, 2, -2, 11, 7, -9]

Returns: [-12, 23]

```

Because:

```
[(-1 + (-9)), (3 + 7), (2 + 11), -2] =

[-10, 10, 13, -2] =>

[(-10 + (-2)), (10 + 13)] =

[-12, 23]

```

Constraints:

`-101 < arr[i] < 101`

You may assume that each `arr[i]` is unique

---

Here's my attempt at solving this problem:

```
def sumFirstAndLast (array):
    if len(array) == 2:
        return array

    else:
        left = 0
        right = len(array) - 1
        result = []

        while left < right:
            result.append(array[left] + array[right])

            left += 1
            right -= 1

            array = result
            result = sumFirstAndLast(array)

    return result

```

But it's throwing an error:

```py
Traceback (most recent call last):
File "<string>", line 22, in <module>
File "<string>", line 11, in sumFirstAndLast
IndexError: list index out of range
>

```

Can someone provide me with a solution to this problem? Why am I getting this error? Is my logic to approaching this problem incorrect?