私は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
それが私が欲しかったものです。@と@の唯一の違いは、ランクについてもう少し読む必要があると思います。