gpt4 book ai didi

j - Dynamic If "Power Of"收集结果

转载 作者:行者123 更新时间:2023-12-02 08:12:23 25 4
gpt4 key购买 nike

考虑一个“goto”数组,其中每个元素告诉您要跳转到的下一个输入:

a=. 1 3 3 6 10 7 10 9 15 12

因此,如果我们从索引 0 开始,则值为 1,这意味着“转到索引 1”。当我们这样做时,值为 3,表示“转到索引 3”。那里的值是 6,所以我们跳转到索引 6,这里的值为 10。此时我们停止,因为索引 10 超出了范围。如果我们要收集结果,我们会得到:

0 1 3 6 10

事实上,我们可以使用 ^: 和数组幂来做到这一点:

a {~^:(i.5) 0       NB. returns 0 1 3 6 10

问题是我必须提前知道我需要多少次迭代。

相反,我想使用 u^:v y 形式,并返回一个 bool 值 v (它可以检查列表长度是否已超出)——但是我想收集结果。

这可能吗?

如果您使用 , 手动收集,事情会很快变得冗长,尽管如果没有内置的方法来执行我想要的操作,一个灵活的手动收集解决方案就足够了。

也欢迎采用完全不同的方法来实现相同的目标。

最佳答案

如上所示,您可以使用 a: 返回中间迭代的结果。它将继续迭代,直到连续两次得到相同的结果。下面的代码将导致动词在第一次遇到无效索引时停止。这是通过使用连词 adverse 完成的。 :: 捕获错误,然后再次返回相同的正确参数。

   a {~ ::]^:a: 0
0 1 3 6 10

关于j - Dynamic If "Power Of"收集结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45396149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com