APL/J言語:グラフ理論(クロージャー)

APL/J言語:グラフ理論(クロージャー)


これもわからないまま翻訳

      • -

前回のページでb imfam cmがbの直接のファミリー(immediate family)を生成したように、フレーズcm imfam cmはcmのそれぞれの行の直接のファミリーを生成する。ここで我々はよりわかりやすくするために新しいスパース(疎)な結合マトリックスを用いる。また、imfamの繰り返し(power)を用いてより多くのジェネレーションのファミリーを生成する。無限繰り返しを用いて結合マトリックスクロージャーを作成する。すなわち、これは長さを問わないですべての点に到達できる結合マトリックスである。

   cm=: (i. =/ 

cmのクロージャーはcm imfam^:_ cmと表現できるので、単項動詞として以下のように定義できる。

   (closure=: imfam^:_ ~) cm
0 1 1 1 1 1 1 1
0 0 1 1 1 1 1 1
0 0 0 1 1 1 1 1
0 0 0 0 1 1 1 1
0 0 0 0 0 1 1 1
0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0

クロージャー関数の完全な定義は以下のようになる。

   closure f.
([ +. +./ .*.)^:_~