The function xprevbasically looks like this:
xprev1:{y til[count y]-x}
We can customize it to get all the items. n
nprev:{y til[count y]-\:1+til x}
using nprevin request
q)update np: nprev[3;s] , xp1:xprev1[3;s] , xp: xprev[3;s], p:prev[s] from t
i s np xp1 xp p
-------------------
1 a " "
2 b "a " a
3 c "ba " b
4 d "cba" a a c
5 e "dcb" b b d
6 f "edc" c c e
k equivalent nprev
k)nprev:{$[0h>@y;'`rank;y(!#y)-\:1+!x]}
and similarly it nnextwill look like
k)nnext:{$[0h>@y;'`rank;y(!#y)+\:1+!x]}
source
share