Follow a linked list For this challenge, a linked list looks like this:
[1, 2, 4, 0, 6, 1, 3, 1]

You'll notice there's no data; each item in the list is just a reference to the index of the next one. Your task is to write a program or function which will follow a linked list like this forever, outputting each item as it is encountered. For example, for the above input:
[1, 2, 4, 6, 3, 0, 1, ...]

Input and output can be represented in any reasonable manner. All numbers in the input will be valid indices in the list, and you can choose if it's 0- or 1-indexed. The output will be infinite, and as long as your program would theoretically give a correct result given infinite time and resources it's valid.
Test cases:
Zero indexed, using lists.
[0]         -&gt; [0, 0, ...]
[1, 0]      -&gt; [1, 0, 1, ...]
[0, 1, 2]   -&gt; [0, 0, ...]
[2, 1, 0]   -&gt; [2, 0, 2, ...]
[4]         -&gt; (does not need to be handled)
convey, 36 29 bytes
v&lt;&lt;&lt;&lt;,{
\~./.&quot;
&gt;&quot;`=&gt;!
 &gt;!0&lt;&quot;}

Try it online!

{ gets the input, that will get looped around in the upper two rows, while outputting downwards the length \, its indices /. and a copy of itself &quot;. It will only continue after ~. (batch) if n elements reach ~., whereas n will be the length.

We then take ! n copies of the current index i (starting with 0) and compare = them to the indices of the list. This returns either 1 or 0. We take the correspondent element of the copied list so many times, effectively filtering the others out. The next index then gets copied to the output &quot;} and waits for the next iteration.