APL/J言語:文法

APL/J言語:文法
(cf.20010329)
次の例はJ言語における文の6つの部分(名詞、動詞、副詞、接続詞、連結詞、句読点)をわかりやすく示しています。

The following sentences illustrate the six parts of speech:

   fahrenheit =: 50
   (fahrenheit - 32) * 5%9
10
   prices =: 3 1 4 2
   orders =: 2 0 2 1
   orders * prices
6 0 8 2
   +/ orders * prices
16
   +/ \ 1 2 3 4 5
1 3 6 10 15
   2 3 * / 1 2 3 4 5
2 4 6  8 10
3 6 9 12 15
   (cube=: ^&3) i. 9
0 1 8 27 64 125 216 343 512 

文の6つの部分(名詞、動詞、副詞、接続詞、連結詞、句読点)。

  50 fahrenheit        NB.名詞/代名詞
  + - * % cube         NB.動詞/代動詞
  / \  Adverbs         NB.副詞
  &  Conjunction       NB.接続詞
  =:  Copula           NB.連結詞
  ( )  Punctuation     NB.句読点

動詞は名詞に作用し、名詞の結果を得ます。動詞が作用する名詞のことは引数(ひきすう)と呼ばれます。動詞は一つの(右側の)引数に作用する場合と、二つの(左右の)引数作用する場合は全く違った(しかし通常関連ある)意味を持ちます。2%5の結果は0.4であり、%5の結果は0.2です。

副詞は一つの左側にある名詞か動詞に作用して、動詞の意味を変形します。従って、+/は動詞+(プラス)に/(スラッシュ)という副詞が作用してできた動詞で、(プラスオーバーとでも呼べるもので)引数のリストの合計を算出します。*/は同様にリストの積を算出します。接続詞は二つの名詞もしくは動詞の引数に作用するものです。

句読点はかっこによるもので、初等数学におけるものと同様、実行順序を指定するものです。かっこ以外の句読点として、if. do. end.があり、これについては明示的定義(:)と制御構造のところで説明があります。

単語=:(イコールコロン)は英語の“is”や“are”のようなコピュラ連結詞の役割を果たします。読み方も同様で、area=: 3*4ならばエリアは3に4を掛けたもの(“area is 3 times 4”)というように読みます。ここで代入されたareaという名称は英文法でと同様に代名詞であり、名詞の役割をします。同様のことが動詞や、副詞、接続詞を代入した名前についてもいえます。名前だけをJ言語のシステムに入れるとその内容が示されます。えらーについてはセクションII.J(エラーと実行中断suspension)のところで説明します。