APL中重复函数的应用

Aug*_*rom 3 apl

给定整数pqn我想生成一个长度为n的向量

\n\n
(\xe2\x8c\x8ap \xc3\xb7 q) (\xe2\x8c\x8a(\xe2\x8c\x8ap \xc3\xb7 q) \xc3\xb7 q) ...\n
Run Code Online (Sandbox Code Playgroud)\n\n

换句话说,我想构造一个向量,其中第i个元素在p{\xe2\x8c\x8a\xe2\x8d\xb5 \xc3\xb7 q}上应用i次。我怎样才能在 APL 中做到这一点?

\n

Adá*_*dám 5

\n\n

这个简短的解决方案使用 scan\\在所有支持基本 dfns(内联 lambda)的 APL 中工作:

\n\n
1\xe2\x86\x93{\xe2\x8c\x8a\xe2\x8d\xb5\xc3\xb7q}\\(1+n)\xe2\x8d\xb4p\n
Run Code Online (Sandbox Code Playgroud)\n\n

在线尝试一下!

\n\n

注意它的低效率;它会为每个术语从头开始重新计算。

\n\n

更复杂的解决方案通过使用/迭代来避免重新计算:

\n\n
r\xe2\x86\x90,p\n{r,\xe2\x86\x90\xe2\x8c\x8a(\xc2\xaf1\xe2\x86\x91r)\xc3\xb7q}/(1+n)\xe2\x8d\xb41\n1\xe2\x86\x93r\n
Run Code Online (Sandbox Code Playgroud)\n\n

在线尝试一下!

\n