我将用简单的英语解释我的问题,然后在 J 中展示我的尝试。
将 1 和 0 列表中 1 的索引相加,看看它们是否等于另一个数字。 例如,给定 1 0 1 1 0,索引是 0,2 和 3,它们的总和是 5。所以我可以测试它是否符合另一个数字(在这种情况下,显然只有 5 才是正确的)。
这是我的J:
indexsumtest =: =+/I.
v =: 1 0 1 1 0
5 indexsumtest v
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
什么?在这里我假设 indexsumtest 是一个二元动词,也许我需要明确输入 x 和 y?
indexsumtest =: x =+/I. y
5 indexsumtest v
|value error: x
| 5 indexsumtest v
没有。这让事情变得更糟。
所以我从头开始:
I. v
0 2 3
正确的!
+/I. v
5
再更正。
5 =+/I. v
1
1 表示真实。所以我做对了。
为什么我不能将这三个操作压缩成一个动词?