2026年7月24日(金)掲載 2,900本日 0
HN12235

Dyalog APLを極める:最強の配列指向言語を使いこなそう

Mastering Dyalog APL

tosh2か月前

議論

10
0toshスレ主1222か月前

Dyalog APLの習得を目指すエンジニアへ。このユニークで強力な配列指向言語の深淵を覗いてみませんか?圧倒的な記述量と計算効率を実現するDyalog APLの世界観を解説します。

1raghavchamadiya2か月前

これがJupyter Notebook形式に対応したのは嬉しいね。元の本もAPLの入門書としてはかなり良いものだったし。APLは記号の扱いに慣れる(マッスルメモリーを作る)のが学習曲線の半分みたいな言語だから、インタラクティブに試せるのはめちゃくちゃ大きいよ。

2pjmlp2か月前

APLを使う予定は全くないけど、暇な時用にブックマークしておくには最高だね。

3UltraSane2か月前

これを学習することにどれだけのリターンがあるのか、正直かなり気になる。

5Pay082か月前

APLを学ぶことは、Matlabみたいに厳密に配列ベースではない言語を書く上でどれくらい役立つんだろう?

6meken2か月前

最近Dyalog APLを少し触ってみて、Dyalog APLを評価するためのemacsモード[1]を書いたよ。gnu-apl-mode[2]から必要な機能だけを抽出するのにClaudeを使ったんだけど、かなり良い体験だった。本格的にAPLに取り組みたいから、Kattis[3]の問題をたくさん解いてみるつもり。LLM時代の言語学習法として、オンラインのコードジャッジサイトで簡単な問題から始めて、LLMと協力して解法を考えたり解説してもらったりするスタイルは本当に気に入ってる。手っ取り早くコーディングを始められるし、ドーパミンが出るし、反復練習もできて、徐々に難易度を上げながら言語のいろんな機能に慣れていくには最適だよ。

[1] https://github.com/ebanner/dyalog-mode (https://github.com/ebanner/dyalog-mode)

[2] https://github.com/lokedhs/gnu-apl-mode (https://github.com/lokedhs/gnu-apl-mode)

[3] https://open.kattis.com (https://open.kattis.com)

7gobdovan2か月前

APLみたいにニッチで、難解プログラミング言語に近いものがOSSでもなく、商用利用も気軽にできないエンタープライズライセンスの下にあるっていうのは、いつも奇妙に感じるんだよね。

それはそうと、以前APLのプログラムをNumPyに翻訳して遊んだことがある。ある時点でAPLの本質みたいなのが分かってきて、後悔なく次に進めるようになるよ。結局のところ、APLのコードの大半は線形代数演算をこねくり回して(非効率なことも多い)簡潔に書くというパズルみたいなものだからね。もしOSSで簡潔な記法を持ち、パズル解きじゃなくて思考をクリアにするために脳を書き換えてくれるような言語を探してるなら、TLA+がおすすめ。

追記:APLがどんなものか一目で知りたいならこれを見てみて:

APLコード:

(2=+⌿0=∘.|⍨⍳N)/⍳N <- これがNまでの素数を計算するAPLの「Hello world」的なコード。

等価なNUMPYコード:


R = np.arange(1, N + 1)                       # ⍳N

divides = (R[None, :] % R[:, None]) == 0      # 0=∘.|⍨⍳N

divisor_counts = divides.sum(axis=0)          # +⌿

result = R[divisor_counts == 2]               # (2=...)/⍳N

見ての通り、この有名な素数生成器はエラトステネスの篩ですらなくて、単純なN^2の約数カウント計算に過ぎないんだよ。

9xvilka2か月前

現代において商用コンパイラの居場所はないね。無料(かつオープンソース)にして、IDEだけを有償にすればよかったんだ。いっそのことGCCやLLVMに組み込むのがベストだよ。