规范排序的 J 语法?
J syntax for canonical sorting?
我正在整理一些 J 代码,偶然发现了这行代码:
] { /:@~.
我正在尝试了解它的用途和功能。有人可以帮我阅读或使用它吗?它上面有一个标签,表明它是一个规范函数。
老实说,我不太确定您的代码部分试图做什么。它可能是更大的默认动词的一部分吗?
与此同时,有些部分肯定可以用于对向量的唯一项进行排序。
~. 3 4 5 2 3 4 NB. returns the unique items of a vector
3 4 5 2
/:@~. 3 4 5 2 NB. returns the indices that will order that vector
3 0 1 2
3 0 1 2 { 3 4 5 2 NB. using { to select indices 3 0 1 and 2 from the vector.
2 3 4 5
(] {~ /:@~.) 3 4 5 2 3 4 NB. perhaps this is what your code should have been?
2 3 4 5
] {~ /:@~.
周围的括号很重要,因为它们使三个动词 ]
、{~
和 /:@~.
成为一个叉子,叉子将 ]
和/:@~.
并使它们成为 {~
的左右参数 副词 ~
反转动词 {
的左右参数。我们知道的右参数是 /:@~.
,它是唯一索引 3 0 1 2
,左参数是 ]
,它是原始列表 3 4 5 2 3 4
。将两者反转等同于
3 0 1 2 { 3 4 5 2 3 4
2 3 4 5
所以,也许您的意思是 (] {~ /:@~.)
它将对向量的唯一项进行排序?
希望这对您有所帮助。
我正在整理一些 J 代码,偶然发现了这行代码:
] { /:@~.
我正在尝试了解它的用途和功能。有人可以帮我阅读或使用它吗?它上面有一个标签,表明它是一个规范函数。
老实说,我不太确定您的代码部分试图做什么。它可能是更大的默认动词的一部分吗?
与此同时,有些部分肯定可以用于对向量的唯一项进行排序。
~. 3 4 5 2 3 4 NB. returns the unique items of a vector
3 4 5 2
/:@~. 3 4 5 2 NB. returns the indices that will order that vector
3 0 1 2
3 0 1 2 { 3 4 5 2 NB. using { to select indices 3 0 1 and 2 from the vector.
2 3 4 5
(] {~ /:@~.) 3 4 5 2 3 4 NB. perhaps this is what your code should have been?
2 3 4 5
] {~ /:@~.
周围的括号很重要,因为它们使三个动词 ]
、{~
和 /:@~.
成为一个叉子,叉子将 ]
和/:@~.
并使它们成为 {~
的左右参数 副词 ~
反转动词 {
的左右参数。我们知道的右参数是 /:@~.
,它是唯一索引 3 0 1 2
,左参数是 ]
,它是原始列表 3 4 5 2 3 4
。将两者反转等同于
3 0 1 2 { 3 4 5 2 3 4
2 3 4 5
所以,也许您的意思是 (] {~ /:@~.)
它将对向量的唯一项进行排序?
希望这对您有所帮助。