Skip to content
2009/03/20 / highmt

Concurrent Haskellにちょっとだけ触れる

Beautiful Code(ISBN978-4-87311-363-0) の 24章に
Haskell の STM についてのとてもすばらしい文章があります。

最初にIOモナドに触れたときにはまわりくどいと思っていましたが、
処理をつなぐことを明示的に示すことは
型によるチェックを得る利点もあるというのは目からうろこでした。

ところで、ある処理の中でしかある種類の処理はやってはいけない、
あるいは、ある処理の中ではある種類の処理はやってはいけない、
というのは、並行処理に限らず、いろんな場面であることのように思います。

今日も、お仕事で、
「ある入力コントロールのクリックイベントハンドラの中で
そのコントロールのバックにあるデータ構造を再読み込みしてはいけない」
という制約に起因するバグに遭遇しました。

こうした処理と処理の組み合わせはとてもたくさんあるので、
ドキュメントには記載されない可能性が高いし、
何よりコントロールの製作者も把握していない可能性もあります。
(実際に事象が起きればソースコードを追って説明はできるんでしょうけど。)

それが型チェックによって処理と処理の組み合わせを限定できるようになると
とてもすてきな感じがします。

当然その分野の研究はあるんでしょうけど、
はやく現場まで降りてきてほしいものです。

広告
%d人のブロガーが「いいね」をつけました。