这是我做过的(可能是天真的)方式:
count =: 4 : '# (#~ =&x) y'"1 0 1
换句话说,如果我说4 count 3 4 4 3 4 7 9结果是3,因为4在给定列表中发生了3次.
这很好用,但我想知道J是否提供了一些更简洁的方法来表达这一点.
当我这样做时,知道我只会有一个列表而不是矩阵,我使用:
count =: 4 : '+/x=y'
Run Code Online (Sandbox Code Playgroud)
或者对于列表中的多个搜索:
count =: 4 : '+/x=y'"0 1
Run Code Online (Sandbox Code Playgroud)
您的方法仅复制等于x的元素,然后计算结果.总结相等的是一个较少的操作.