3
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?

J言語でHello, Worldを書いてみる

Last updated at Posted at 2025-12-08

以下がJ言語のHello, World!のソースコードです。

'Hello, world!'

単なる文字列リテラルのようにしか見えないのは、J言語がAPLの後継となる言語だからです。
APLではASCIIコードにない特殊文字が多く使われたことで問題が起こったため、J言語ではASCIIコード領域の文字のみが使われている点が特徴です。
APLに存在した多くの文字をASCIIコード領域で表現するため、J言語の演算子は記号二文字になることが多く、ドットとコロンによって屈折1を表現しているようです。

ASCIIコード領域に収まったから多少は読みやすくなった、、、のかと言われるとそうではなく、未だにJ言語のソースコードは暗号めいています。(個人の感想です)

平均を計算する関数 avg を定義しているコードはこちらです。関数名以外は記号しかありません。

avg=: +/ % #

=: はかろうじて、関数定義であることが分かりますが、それ以外の記号の意味を説明すると、このようになります。

+/: 与えられた配列の合計を求める処理
% : 割り算
#: 与えられた配列の要素数を求める処理

なお、クイックソートのプログラムはこのようになるようです。

quicksort=: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)

えーと、、脳が理解するのを拒否しました。
QiitaのSyntaxHighlightに j があるため、色付けしてみましたが、これが正しいのかもよく分かりません。

Gemini3にコードの解説をしてもらい、その内容を3回くらい読んで初めて理解できました。もし、万が一にもJ言語が一番人気な言語になってしまったら、僕はエンジニアを辞めようと思います。

スクリーンショット 2025-11-25 15.38.22.png

参照:
https://www.jsoftware.com/#/

  1. 言語学の専門用語で、「食べる」に対して、「食べた」「食べろ」などのように語形が変化する現象

3
0
0

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
3
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?