Create a pointer sequence
JavaScript (ES6), 25 bytes

a=&gt;f=n=&gt;a[n]||f(--n-f(n))


An anonymous function that, when called, creates a function f that gives the item at a given index in the sequence.

Please let me know if I misunderstood anything...