求助: 如何引用 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 中的值吗?恳请大佬们得闲时给予帮助,谢谢🙏
x 中无法相对引用 p 的值,是否可以变一种写法,写成 p.(x)?
x 中可以用位置去引用 A。
谢谢大佬🙏
那不管这个了,就用 p.(x)。我也是昨晚写东西的时候突然想到了😂