2

APLの個人的な見解の最後(参照の直前)で、KenIversonは次の一連のJコードスニペットを提供しました。

[a=. b=. i. 5
0 1 2 3 4

   a +/ b 
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8

   over=.({.,.@;}.)&":@,
   by=. (,~"_1 ' '&;&,.)~
   a by b over a !/ b
+-+---------+
| |0 1 2 3 4|
+-+---------+
|1|1 1 1 1 1|
|2|0 1 2 3 4|
|3|0 0 1 3 6|
|4|0 0 0 1 4|
|5|0 0 0 0 1|
+-+---------+

   table=. /([`by`]`over`)\
   2 3 5 *table 1 2 3 4 5
+-+-------------+
| |1  2  3  4  5|
+-+-------------+
|2|2  4  6  8 10|
|3|3  6  9 12 15|
|4|5 10 15 20 25|
+-+-------------+

これらはすべて、J701で私のために機能しますが、最後のものを除いて、次のようになります。

   table=. /([`by`]`over`)\
   2 3 5 *table 1 2 3 4 5
|rank error
|   2 3 5    *table 1 2 3 4 5

IBMの元のPDFで、引用符が次のようになっていることに気付きました。

table=. /([`by']`over')\

しかし、これは構文エラーです。

JサイトでPDFをHTMLに変換する際の文字起こしエラーがありましたか、それともJの構文が変更されましたか?

4

2 に答える 2

2

私はこれが有効なJ構文であるとは思いません(つまり、それが何をすることになっているのか)。多分それはその時でしたが、それ以上ではありません。副詞は次のtableように簡単に定義できます。

 table =: 1 :'[ by ] over u/'

アイバーソンのバージョンに最も近いものは次のとおりです。

 table =: /([`by`]`over`)

`:しかし、副詞の結果を呼び起こす必要があります( ):

 2 3 5 (*table`:6) 1 2 3 4 5
┌─┬─────────────┐
│ │1  2  3  4  5│
├─┼─────────────┤
│2│2  4  6  8 10│
│3│3  6  9 12 15│
│5│5 10 15 20 25│
└─┴─────────────┘
于 2012-07-06T10:43:04.407 に答える
1

Jが変わった。以前のバージョンでは、副詞と接続詞を、もはや不可能な方法で定義することができました。

table最近のバージョンと互換性のある のバージョンは、J Dictionaryの"Bordering a Table" の下に表示されます。

于 2012-07-06T23:03:14.423 に答える