私はJ言語を習得しようとし始めたばかりで、次のことに混乱しています。
1 2 +/@{ i.4
1 2
+/ 1 2 { i.4
3
@のドキュメントにある場合、「xu@vy↔uxvy」と表示されます。
品詞を別の品詞と間違えているだけだと思いますが、理解できません
また、名前がどのような種類のスピーチであるかをどのように見分けることができますか?
私はJ言語を習得しようとし始めたばかりで、次のことに混乱しています。
1 2 +/@{ i.4
1 2
+/ 1 2 { i.4
3
@のドキュメントにある場合、「xu@vy↔uxvy」と表示されます。
品詞を別の品詞と間違えているだけだと思いますが、理解できません
また、名前がどのような種類のスピーチであるかをどのように見分けることができますか?
注意。あなた_ 0はu
NBのランクを返します。 動詞のランクによって、一度に適用される引数が決まります
。モナド+ yはアトムに適用されます。二項x + yは、原子のペアに適用されます
+ b. 0
0 0 0
注意。単項 +/ yおよび2 項x +/ yは何にでも適用されます (無制限のランク)
+/ b. 0
_ _ _
注意。モナディック { yはアトムの配列に適用されます。
注意。二項x { yは、原子のペアなどに適用されます
{b。0
1 0 _
注意。u @ vのランクはv
+/@{ b. 0
1 0 _
注意。1 2 { i.4は一度にアトムを返すので、+ /はアトムに作用します
+/"0 [ 1 2 { i.4
1 2
注意。u @: vのランクは無制限です
+/@:{ b. 0
_ _ _
注意。+/ 1 2 { i.4のすべてに一度に適用
+/"_ [ 1 2 { i.4
3
注意。暗黙の形への機械的翻訳
13 : '+/ x { y'
[: +/ {
ウィキペディアには、私の偏った意見では、ランクに関するまともな記事があり、J の「スピーチ」のさまざまな部分のコンテキストでそれが何を意味するのか.
しかし、元の質問に答えるために、J のトレース機能は、その文法がどのように機能するかを理解するのに役立ちます。
require'trace'
trace '1 2 +/@{ i.4'
これにより、解析プロセスを段階的に進め、各生産ルールによって消費される単語と、それぞれが生成する結果を示します。
ああ、私はそれを理解したかもしれないと思います、私は@の代わりに@:を使用する必要があります
1 2 +/@:{ i.4
3
それが私が欲しかったものです。@と@の唯一の違いは、ランクについてもう少し読む必要があると思います。