求助: 如何引用 A.calc(p,x) 一参 p 中的值

在 A.calc(p,x) 中,1 参 p 表示位置的数列,x 处可以用相对位置。比如 A.calc([2,3],~[1]) 就算出了 A 中位置 3 和位置 4 的值,此时所有的参数和相对引用都是针对 A 中的元素的。

那可不可以引用到 1 参 p 中的值,且能相对引用? 比如,

以下写法是成立的:

A.calc([2,3],#),此时返回的是 p 本身 [2,3],或者,

A.calc([2,3],#@),此时返回的是 p 的索引号 [1,2]

那可不可以这样,以下 fx 表示针对一参 p 的相对位移操作:

A.calc([2,3],fx[1]) 返回 [3,null]

A.calc([2,3],fx[-1]) 返回 [null,2]

意思就是针对 p 进行相对位置的操作。

具体到某个例子,比如有序列 [a,b,c,d,e,f,g],给定一个位置序列 [1,3,6],想得到位于当前位置和下一个位置前的那些元素,比如,位置 1 时得到 A.m(1:3-1),位置 3 时得到 A.m(3:6-1),位置 6 时得到 A.m(6:),这个就是以下语句中 A5 格的写法,或者用 A6 格中的 calc 写法。

A
1 [a,b,c,d,e,f,g]
2 =A1.calc([1,3],#@)
3 =A1.calc([1,3],#)
4 =e=A1.len()+1
5 =[1,3,6].(i=ifn(~[1],e)-1,A1.m(~:i))
6 =[1,3,6].(i=ifn(~[1],e)-~-1,A1.calc(~,~[0:i]))

但这两种都是对位置 p 进行循环,如果写成 A.calc(p,x) 的形式,能够实现在 x 处相对引用到 p 中的值吗?恳请大佬们得闲时给予帮助,谢谢🙏