I thought I'd try writing a translation into Python. Not sure if it makes it any easier to follow, though...
c: {[h;t]{(h;t)x}} / cons
h: {x 0} / head
t: {x 1} / tail
n: {h y t/x} / nth
p: h'-1_(~^:)t\ / print
r: {{$[^y;x;c[h y;x]o t y]}[0N;x]} / reverse