Home > Archives > 2006年11月02日

2006年11月02日

Jをちょっと

折角APLというものの存在を知ったので,その発展である J を少し使えるようになろうかと考えた.J の実行環境としては JSoftwareからインタプリタがダウンロード可能.JAPLA のシンポジウムの資料を見つつ簡単なところからやってみる.

とりあえず,配列の定義. i. という動詞(関数)で 0 から n-1 の要素を持つ長さ n の配列を作る.代入は =: ないし =. とのことで,値の出力は ] とのこと.

  ] D=: i.8
0 1 2 3 4 5 6 7

すでに分かりにくい.

ついで,reduction に手を出してみる.正確には insertion とか言うらしいが… BMF の reduce と同じで左にオペレータを取って配列をぶっ潰す.和を求めるのも簡単.

  sum =: +/
  ] sum D
28

これはまだ分かりやすい.

次に訳の分からん(気がする)動詞の fork 合成を試す.fork は3つの動詞からなり, f g h という fork に引数 x を適用すると (f x) g (h x) とかになるらしい.こんなのどこに使えばいいか良くわからんが,とりあえず平均がこれで書ける.# は要素数を返す演算子で % は割り算(剰余ではないらしい)の演算子.

  mean =: +/%#
  ] mean D
3.5

うーん,微妙に気持ち悪い気がしなくも無い.Lisp の括弧だらけの式を読むのと APL ないし J の式を読むのとどっちが面倒なんだか…

Home > Archives > 2006年11月02日

Search
Feeds

Page Top