我提出的相当冗长的分支是
Set
如,
({. , (>:@[ }. ]))
效果很好,但有更惯用的方法吗?在J中这样做的常用方法是什么?
答案 0 :(得分:5)
是的,J-way是使用3级拳击:
(<<<5) { i.10
0 1 2 3 4 6 7 8 9
(<<<1 3) { i.10
0 2 4 5 6 7 8 9
这是dictionary for {
中的一个小注释:
请注意,最后一个二元示例中的结果,即(&lt;&lt;&lt;&lt;&lt;&lt;&lt; _1){m,除最后一项外都是。
以及Learning J: Chapter 6 - Indexing: 6.2.5 Excluding Things中的更多内容。
答案 1 :(得分:4)
另一种方法是使用#
(Tally和Copy)的monadic和二元形式。这种使用Copy来删除项目的习惯用法是我经常使用的。
钩子(i. i.@#)
使用Tally(monadic#)和monadic和dadadic i.
(整数和索引)来生成过滤字符串:
2 (i. i.@#) 'abcde'
1 1 0 1 1
Copy(dyadic#)用于省略相应的项目。
2 ((i. i.@#) # ]) 0 1 2 3 4 5
0 1 3 4 5
2 ((i. i.@#) # ]) 'abcde'
abde