关于函数 conj 的一点建议

大佬们,早上好!

conj 函数在官网函数文档里的描述是:计算序列 A 中各个序列成员的和列。它还有一个选项是 @r,递归计算到所有成员都不再是序列为止。这就是传统意义上的序列扁平化,很好用。

我想的是,在序列扁平化的时候,可不可以指定扁平化的层数?比如有一个 n 层嵌套的序列,我只想扁平化到第二层,那就要写两次 conj,序列.conj().conj(),如果要扁平化 k 层,就要写 k 次 conj,这样一来显得步骤冗余了,但 conj@r 递归一路到底,就会用力过猛。所以,可不可以有一个选项或者参数,能指定扁平化的层数?就像自己写递归的时候,有个指定层数的参数。

比如,我想对以下嵌套序列扁平化两层,自己写递归有点小复杂:

A B C
1 =[[1,2],[3,[4,5]],6,7,[8,[[9]]]]
2 func
3 if B2+0==0 return A2
4 else return A2.(if(ifa(~),func(A2,~,B2-1),[~])).conj()
5 =func(A2,A1,2)

conj 可不可以增加参数实现指定层数的扁平化,比如,

conj@r(x;k),其中参数 x 是可以省略的运算表达式或者字段名,k 是递归的次数。

以上建议,恳请大佬有空时考虑一下,看能否实现?
或者指点一下有没有其他更巧妙的扁平化手法。

谢谢!