上へ  前へ  次へ

Darkside of the Haskell -- 副作用版 ヒープソート

 副作用を排除するとプログラムが分かりやすくなるというのが、関数型 プログラミング言語の信者の言ですが。何か、 ヒープソート を見る限り、副作用版の方が 明らかにコンパクトで分かりやすいですね。まあ、パッと見で把握するのが 難しい規模のプログラムになると、副作用の無い有り難さが身に染みてくるの かもしれませんが。それなら、副作用を大域的に染出さないようにすれば、 ローカルには副作用ジャブジャブでも良いんじゃね?とか、個人的には思い ました。Haskell による副作用版ヒープソートの実装は以下のようになります。

STHeapSort1.hs

 forM_ は手続き型言語の for 文のように振る舞う関数です。 forM_ lst $ \i -> func i のように記述すると、lst の要素を1つ1つ i に束縛して、それぞれ func i を実行します。


上へ  前へ  次へ