# The plus-minus sequence

## Jelly, 5 bytes

ṄI;Sß


This is a recursive approach. Due to tail call optimization, the only limit is the ability to fit both integers into memory. Output is one list per line.

Try it online!

### How it works

ṄI;Sß  Main link. Argument: [b[n], a[n]] (n = 0 for original input)

Ṅ      Print [b[n], a[n]] to STDOUT.
I     Compute the increments of the list, i.e., [a[n] - [b[n]].
S   Compute the sum of the list, i.e., b[n] + a[n].
;    Concatenate the results to the left and to the right.
ß  Recursively call the main link.


### Python 2, 31 bytes

def f(a,b):print a,b;f(a+b,a-b)


Prints forever. Well, eventually you exceed the recursion limit, but that's a system limitation.

## MATL, 10 bytes

tDtswPdhT


This version will output an infinite number of elements in the plus-minus sequence.

Try it Online! (stop it after running due to infinite loop)

Explanation

    % Implicitly grab input as a two-element array [a,b]
% do...while loop
tD  % Duplicate and display the top of the stack
ts  % Duplicate [a,b] and add them together
w   % Swap the top two elements on the stack
P   % Swap the order of b and a in preparation for diff
d   % Compute the difference between b and a
h   % Horizontally concatenate [a+b, a-b]
T   % Explicit TRUE to make it an infinite loop
% Implicit end of the do...while loop