1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

数値と計算 ― J 言語入門

Last updated at Posted at 2020-10-25

いよいよ J 言語の説明に入ります。まずは、数値の書き方と簡単な計算を見ていきましょう。

J では、REPL のプロンプトは半角スペース 3 つです。また、コメント (行コメント) は、なんと NB. 1 で始まります。最初は違和感があるかもしれませんが、すぐに慣れると思います。

数値リテラル

まずは整数。

   0
0
   1
1
   12345
12345

正の数は、いたって普通の表記ですが、負の数は少し変わった書き方をします。

   _1    NB. - (ハイフン) ではなく _ (アンダースコア)
_1

小数 (浮動小数点数) も、負の数の表現を除けば一般的な表記と同じです。

   12.3
12.3
   3e18
3e18
   1.7e_9
1.7e_9

ただし、無限大は特殊です 2

   _     NB. 正の無限大
_
   __    NB. 負の無限大
__

計算してみる

さて、数値を入力するだけではつまらないので、簡単な計算を試してみましょう。

   2 + 3
5
   2 - 3
_1
   2 * 3
6
   2 % 3    NB. 2 ÷ 3
0.666667
   2 | 3    NB. 3 mod 2
1

割り算は / ではなく % を使うことに注意してください。また、剰余 |引数の順番も他の言語と異なります。

計算順序

次の 2 つの式を実行して、結果を比べてみましょう。

5 + 2 * 3
2 * 3 + 5

違う結果が表示されましたね。J には演算子の優先順位は なく、基本的に右から計算されます 3。左側を先に計算したい場合は括弧を使います。

   (2 * 3) + 5
11
   2 - (8 % 4) - 7   NB. 2 - ((8 % 4) - 7)
7

単項演算子

実は、上で紹介した + 等の記号は全て単項演算子としても使えます。

   +5
5
   -5
_5
   %5    NB. 1/5
0.2

% は逆数を表します。(% が割り算なのでセットで覚えましょう。)

* は符号を、| は絶対値を返します。

   *5    NB. _1 (負), 0, 1 (正)
1
   *_5
_1
   |5
5
   |_5
5

単項演算子が混ざっても、「右から」のルールは適用されます。

   2 * 3 - -5     NB. 2 * (3 - (- 5))
16
   %5 - 2         NB. % (5 - 2)
0.333333
   -|_7           NB. - (| _7)
_7

練習

下の式を、それぞれ結果を予想しながら実行してみましょう。

4 + |-3
--8 % %2
1 - 2 + 3 - 4 + 5
2 * 7 - 6 * 3
1 - 4 | 9 + 1
-(5 * 3) - 2
(*(1 - 3)) % _1

verb と noun

さて、ここでいくつかの用語を紹介します 4。J の用語の多くは文法用語から来ているので、一般的でない単語も使われます。そこで、可能な限り英語と日本語を併記することにしています。

+ 等の演算子や他の言語の関数にあたるものを、J では verb (動詞) と呼びます。verb のうち、

  • 単項演算子として使うものを monad
  • 二項演算子として使うものを dyad

と言います 5。verb は常に右結合です。

verb に対して、数値等の いわゆる「値」は noun (名詞) と呼ばれます。


[ 前 : インストール ] [ 目次 ] [ 次 : 数値の配列 (ベクター) ]

  1. 注釈を示す略語。ラテン語の nota bene (よく注意せよ) から。

  2. この他に NaN (_.) もありますが、J では使用頻度は低いため省きます。

  3. 左から右の構文も存在します。これについては後々説明しようと思います。

  4. 全てを暗記する必要はありません。よく使うものについては自然に覚えられると思います。

  5. 例えば + は monad かつ dyad ということになります。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?