2007年 11月 25日

関数型とOOPと書き順

頭にうかんだ順に書けるぶん、自分は関数的に書くより OOP で書くほうが好きだ。

# http://subtech.g.hatena.ne.jp/cho45/20071121/1195642614
0.countup.imap {|x| x * x }.take_while {|x| x < 10}
import Text.Show

countup = iterate (\x -> x + 1)

main :: IO ()
main = putStrLn . show $
       takeWhile (< 10) $ map (\x -> x * x) $ countup 0

メソッドチェインだと前から順番によんでいけるけど、関数よびだしだと頭の中のスタックに前から順につんでポップしていかないといけない。

関数系の人はたぶん違う方法で考えているんだろうなぁ……

でも関数の部分適用とかはたのしい うえのコードの (< 10) とか、countup の定義とかすばらしくたのしい。

あーいやうーん。OOP と関数の比較っていうのとは違うかんじもする。