西川です。
いけがみさん、向井さん、お返事ありがとうございます。

> Java の考え方をそのまま持っていきたければ、
> 次のようにすればよさそうです:
>
>   オブジェクト指向言語
>     データと関数を結びつけるためにクラスとオブジェクトをつかう
>     データ、関数の類似性や拡張などをあらわすために継承をつかう
>     例外的な処理のために例外をつかう
>   Haskell
>     データと関数は分離する データは基本的には型とリストで表現する
>       ただし分離はするが、Hierarchical modules によってまとめる
>     データの拡張のために拡張された型を定義する
>     関数の拡張のために型クラスを利用する
>     例外的な処理のために例外をつかう が lazy evaluation のせいで
>       本当に致命的な例外はおきにくい (IO は特別ね)

なるほど、参考になります。
ただ、Javaの考え方ではない考え方ができるようになりたい、
というのが目標なので、開発手法の話がとても参考になります。

> いけがみの好きな開発手法は、ソースコードを変更したら ghci に食わせつつ
>

> オブジェクト指向になれていると、すぐに state monad が必要に
> 感じますが、代数的なデータと再帰的なアルゴリズムで考えるくせが
> 身につくと、実は state はあまり必要にならないという気がしてきます。
>

うーんこれぐらい考え方を変えてみたいですが、
先は遠そうです・・・。

--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.11.8/114 - Release Date: 2005/09/28



--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/