MonadIOクラスのこと

昨日のモナドトランスフォーマーの勉強中に使ったliftIOですが、勘違いをしていたことにやっと気がつきました。liftIOの型情報は liftIO :: IO a -> m a と、この関数だけ見るとIOアクションをほかのどんな形のモナドにでも挿げ替えてくれるハッキーな関数の…

モナドを重ねる

えー、今日はモナドトランスフォーマーの一種StateTについて勉強してみました。参考にしたのはここら辺です。モナドは実際に行われることの一つの面についての上手に抽象化してくれるのですが、一つ一つのことが別々のモナドで実現されているので、ステート…

ITPro連載:本物のプログラマはHaskellを使う

こちらのshelarcyさんによる連載、僕にはとてもためになってます。あちこち調べまわってゴリゴリ考えてHaskellを解き進むのもそれはそれで面白いのですが、こちらでは網羅的に、でも実用の妨げになる端折りもなくHaskellのことが説明されているように思いま…

風邪にてダウン

してしまいました。こんな記事を見つけました。モナド(monad)とFunctorの関係…興味あります。 http://itpro.nikkeibp.co.jp/article/COLUMN/20061005/249933/

コンテキストつきmapとStateモナドのこと

[a]があって、それにある関数 f :: a -> b -> (c, b) をマップして[c]を得たい。ここで、bはマップ開始時の初期値は決まっているけど、それから先はマップの各回によって新しいbの値が生成される。こんなようなコードを書く必要があるときがありました。き…

学術論文やその他のライセンス下の情報をブログから参照するときの注意点

Haskell関係の情報をインターネットで探していると、さまざまなライセンスの元で公開されているものが見かけられるのですが、そういった情報を自分のブログの記事で参照する時に注意するべき点についてどなたかご存知の方おらられますでしょうか?もし何かア…

モナドと実行順序のこと、結末

kazu-yamamotoさんの http://d.hatena.ne.jp/kazu-yamamoto/20080212/1202793403 に導かれてnobsunさんの http://haskell.g.hatena.ne.jp/nobsun/20060907/monadicIO http://haskell.g.hatena.ne.jp/nobsun/20060908 の2つの記事をざっと読みました。nobsun…

モナドと実行順序のこと

kazu-yamamotoさんのコメントいただいて、モナドの実行順序関連の振る舞いについて考えてみました。 bind (>>=) が、右辺を実行する前に左辺を実行し終えるかについて。リストもモナドなことは前回にも述べましたが、リストのモナドインスタンスの実装は以下…

モナドのこと

kazu-yamamotoさんのhttp://d.hatena.ne.jp/kazu-yamamoto/20080208/1202456329に勝手に刺激されて、はてなダイアリーはじめました。 これまでHaskellを勉強してきて、自分なりのモナドの理解をまとめようと思って…最初はkazuさんのブログにコメントを長々と…

はじめました

前からやってみたほうがいいなー、やってみようかなーと思いながら、踏ん切りがついていなかった。今までは読む一方だった「あどけない話」さんのところに長々コメントしてしまったので、これを機会にと思い、取り急ぎ…