我有兴趣创建一个列表,其术语被递归定义(即term[i]
是 的函数term[i-1]
,而不是的函数i-1
)。
我认为如果makelist
连续工作,那么调用上一个术语应该不是问题;但是,文档没有明确说明这些术语是如何生成的。
初步尝试(注意:尽管此处的输出可以使用索引的函数来实现,但重点是创建一个简单的示例来测试在 内调用先前术语的能力makelist
):
test:
makelist(block([ ],
/* list item set to 1 for first term of the list, and to previous list item, thereafter */
if i = 1
then addend
else test[i-1]
)
, i, 5);
但这会返回[1, test[1], test[2], test[3], test[4] ]
,因此它似乎并没有真正访问test
.
我尝试了各种实验,包括初始化test
;包括在块中调用 test , ieblock([ test:test ], ...
和其他一些,但未能获得所需的结果。