2012-01-11 30 views
4

我正在學習(並且讓我的頭腦被吹過)J,並且正在閱讀學習J。我注意到,我學習的許多(所有?)動詞都非常靈活,並有他們的論點。我可以做傳統的4 - 2,或者我可以使用它列出例如4 5 - 3 4,甚至可以做3 4 5 - 1這似乎將操作符的右側「提升」爲一個數組,儘管我只是給它一個標量。構成J動詞數組參數的「兼容形狀」是什麼?

我認爲後者的行爲是由這條線覆蓋的,上述文字2:

因此,=兩個​​參數必須具有相同的形狀,(或在 至少,如在Y = 2,兼容的形狀的例子)。否則會出現 錯誤結果。

事實上,3 4 5 - 2 3是一個錯誤。 「兼容形狀」的技術定義是什麼?它像「相同的形狀還是標量」一樣簡單,還是更多?

回答

5

B. Verbs詞典頁面:

協議。一語中的的v參數必須在 意義同意,一幀必須的其他

前綴所以下面將所有的工作

(i. 2 3) * (i. 2 3 4)  NB. frame of left arg is prefix of the right arg 
    (i. 2) * (i. 2 3 4)  NB. frame of left arg is prefix of the right arg 
    (i. 2 3 4) * (i. 2 3)  NB. frame of right arg is prefix of the left arg 

對於正式定義框請參閱詞典頁A. Nouns

我推薦this section of J for C programmers作爲這些概念的全面覆蓋。

相關問題