1
2
我还没有完整的答案,但是 this essay 由罗杰辉有一个默契的结构,你可以使用替换显式while循环。另一个(相关的)方法是将块的内部逻辑转换成这样一种默契的表达:
(不过,为了提高效率,您可能希望保留if块,因为我编写代码的方式
完整的解决方案包括找出如何将while循环中的所有逻辑表示为单个函数,然后使用roger的技巧将while逻辑实现为一个默契表达式。我来看看能不能出现。
作为旁白,我让J来建造
使用13来声明monad是J知道如何获取monad(否则显式声明为
编辑: 以下是我在评论中提到的为Avenue(2)编写的函数:
此函数使用rowland递推关系生成前n个多候选数,评估它们的第一个差异,丢弃所有等于1的第一个差异,丢弃所有重复项,并按升序对它们进行排序。我认为这还不完全令人满意,因为争论设定了要尝试的候选人数量,而不是结果数量。但是,它仍然在进步。 例子:
这里是我发布的第一个函数的版本,将每个参数的大小保持在最小:
它找到第一个y-许多不同的罗兰素数,并按升序呈现:
这个函数的大部分复杂性来自于我对装箱数组的处理。这不是很好的代码,但它只保留
不过,我还是不满意
|
2
3
虽然我已经将Estanford的答案标记为正确答案,但自从我问这个问题以来,我与J的合作已经有很长的路要走了。下面是一个更为惯用的方法来生成j中的rowland prime序列:
表达式
最后,我们去掉了那些素数和复素数。
这比我以前做的要高得多。它可以很容易地转换成动词来生成
|
Gregory Higley · 如何在J中重复表达式的求值? 6 年前 |
Kevin Choi · 将csv文件导入J并将其用作变量 7 年前 |
Anne · 如何在J中编写具有3个以上参数的函数? 7 年前 |
Jonah · 将副词应用于动名词列表 7 年前 |
dukereg · J句从二元到一元的转换 7 年前 |