3

私は、Jで算術平均を行うこの方法に精通しています:

+/ % #

しかし、ここでは次のようにも示されています

# %~ +/

これら 2 つのバージョンは交換可能ですか?

4

3 に答える 3

3

ダイアディック~は、動詞の引数を逆にします。x f~ yと同等y f xです。~動詞の引数を逆にしたいときに使用します。

その最も一般的な用途の 1 つは、フォークとフックの構成です。たとえば、必要なときに使用できるためy f (g y)です。(f g) y((f~) g) y(g y) f y

于 2015-06-04T16:07:43.877 に答える
2

逆平均の例では、一方の方法が他方よりも効果的である理由はわかりません (フォークの VVV 形式)。ただし、J のフォークは非対称になる可能性があるため (NVV 形式)、いくつかの方法を確認できます。フォークの中間タインを逆にすることが利点になる理由。たとえば、次のとおりです。

   (5 # $) 1 2 3  NB. (N V V) form
3 3 3 3 3
   (5 #~ $) 1 2 3 NB. (N V~ V) becomes effectively (V V N)
5 5 5
   ($ # 5) 1 2 3  NB. (V V N) is a syntax error  
|syntax error
|       ($#5)1 2 3
于 2015-06-05T06:43:59.887 に答える
1

Dyadic~は「受動態」の副詞で、左右の引数を交換します。したがってx f~ y、 と同じy f xです。+/ % ## %~ +/同等です。 2 % 5あなたを与えます0.4が、2 %~ 5与え2.5ます。

これが便利な場所の 1 つは、作業中の行の結果をチェックすることです。おそらくもっと複雑なものをテストしていると思われますが、最後の行を繰り返し、何も並べ替えたり括弧を追加したりせずに左側に追加するだけで、自分で確認できます。

   string =. 'J is beyond awesome.'
   'e' = string
0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0
   string #~ 'e' = string
eee

単項~は「反射」副詞であり、修飾された動詞を2項として動作させ、左と右の両方の単一の引数を複製します。これは引数を整理するためのもう 1 つの近道ですが、dyadic とはかなり異なり~ます。*~ 416、それ自体で乗算yしているためです ( y * y)。

于 2015-06-04T16:43:12.113 に答える