Subscribed unsubscribe Subscribe Subscribe

Usotsuki Online

Do you believe in the magic of make-believe ?

はてなブログには gist 記法があるということでコード片を乗せてみた。これはなかなか便利かも。

最近少しだけ Haskell を触っている。最近では ScalaJavaScript など少しだけ関数型のエッセンスを持つ OOPL があるが、いずれも中途半端なので「本当の関数型言語を知りたい」と思ったのがそもそものきっかけ。型の柔軟性や表現力の高さには驚かされるし、抽象化の度合いが高いので勉強になっている。

今日は Applicative Functor のところを少し眺めてみた。Functor は関数 f をとって引数 a を写すモノ、と考えることが出来る。実際、fmap は fmap : (a -> b) -> f a -> f b と表現される。これをもう少し抽象的に捉え、引数 a から何を取り出して fmap するかも定義出来るのが Applicative Functor だと言える。関数 <*> は f (a -> b) -> f a -> f b(但し f は Functor)と表現される。pure と <*> を実装することにより、Applicative の世界に Functor を持ってくることが出来る。