APL/J言語:分類

APL/J言語:分類
分類は日常的な概念です。たとえばアルファベットは母音と子音、口唇音、破裂音等に分類できます。色ならば原色と混色に分類できる。数字ならば奇数、偶数、素数複素数などがある。

分類は重要であり、さまざまな概念の基礎となる。たとえばグラフ、棒グラフ、セット(集合)などである。

分類は完全の場合(すべてのオブジェクトがどこかの最低限1箇所のクラスに属する場合)と、疎の場合(すべてのオブジェクトが最大で一つのクラスに属する場合)がある。グラフは疎の例の分類であり、棒グラフは疎でない(密)分類の例である。

   x=: 1 2 3 4 5 6 7
   ]y=: (x-3) * (x-5)   NB.3と5を根とするパラボラ
8 3 0 _1 0 3 8
   range=: >./ - i.@spread 
   spread=: 1: + >./ - <./ 
   spread y
10
   range y
8 7 6 5 4 3 2 1 0 _1                  
   ( (range