Smalltalkとかのオブジェクト指向な言語だと、適切なコレクションのクラスをうまく使うことが重要、という気がする。例えば先の問題Bとかで重複を避けて数えるなら、BagではなくSetを使うのが簡単な方法だろう。
対するにHaskellとかの場合は、とりあえずリストにして、mapとかのリストに作用させる高階関数をうまく使う事が重要っぽい。その一方で、リストは単なるBagみたいなものでそれ自体には特筆すべき機能がないように思うのだが。
あと、幾つもの関数を . や $ で繋ぐのは、なんかUnixのパイプみたいな感じだ。簡単な事をする関数を繋いで、という感じ。
その見方で言うと、リストとかが標準入出力みたいな感じだろうか。リストから値を取って、加工してリストに入れる、みたいな。
No comments:
Post a Comment