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)のところで説明します。