人気ブログランキング | 話題のタグを見る

二項演算

群論に少し挑戦してみたが、何が分かったのかと言われても答えられない。ただ、プログラムに関しては、関数と関数の演算表をつくることで、関数による操作のモジュール化が非常に簡単にできることがわかった。

具体的なプログラム例で示すまでには考えがまとまっていないが、演算表によって二項演算を定義することで、操作の合成をモジュール化できる。また、操作の演算と、操作の実装とを分けてプログラムできるので、プロトタイプのプログラミングや、後からの仕様の変更が非常にやりやすい。

操作の演算が抽象化されているので、同じ演算表で全く異なるプログラムを作ることさえ可能だ。

それは群の要素の操作の合成が、その群に対して閉じているからだ。群の要素間の演算はどのような演算も群の中に閉じている。したがって、群を形作る操作の集合を最初に考えて、あとで、その操作の実装をゆっくりプログラムしていくという2段構えのプログラミングでも、考えられる操作の全ての組み合わせに対してエラーなく記述できる。

関数と関数の演算を2項演算にするもう一つの利点は、Num タイプクラスのインスタンスにすることができることだ。これによって、括弧を使う計算や、累乗の計算が自動的に利用できるようになる。演算表があっても括弧が使えなければまともな操作はできない。また、コマンドラインから括弧を使えるようにプログラムするのは大変だ。Num タイプクラスを利用して、ghci 上で使用すれば、大幅な手抜きができる。

いろいろな意味でHaskellは、プログラムのプロトタイプを作るのに楽ができる言語だ。
by tnomura9 | 2012-09-03 09:24 | Haskell | Comments(0)
<< Numeric 左乗法、右乗法、共役 >>