すごいHaskellのモナド変換子を理解したら読めばいいと思います、というか読むべき。超わかりやすかった。合体ロボ並に合成されて強そうな型に変換していく様は圧巻のゴーカイジャー(見てないからしらんけど) Monad Transformers Step by Step スマイルプリキュアで例えると、「プリキュア・レインボーヒーリング」ですね(多分)。
![モナド変換子を重ねまくれ](https://cdn-ak-scissors.b.st-hatena.com/image/square/e3356803e0ca2fbf81750674b5e9ef63e7a486bc/height=288;version=1;width=512/http%3A%2F%2Fwww.kzfmix.com%2Fimages%2Fogp%2Fogp_logo.jpg)
モナドの上にまたモナドって株か?二階建てか?なんて思って敬遠してたのだけど、なんとなくわかってくると、包んで包んでしてるだけじゃないかと。 RWH18章 モナド変換子を使わないでログ記録。これはIO [(FilePath, Int)]型になる。 module CountEntries (listDirectory, countEntriesTrad) where import System.Directory (doesDirectoryExist, getDirectoryContents) import System.FilePath ((</>)) import Control.Monad (forM, liftM, when) listDirectory :: FilePath -> IO [String] listDirectory = liftM (filter notDots
Arrowを学ぶ。Programming with Arrowsを読んでから、「Arrowのはなし」というニコニコ動画をみるのがわかりやすい。イメージは3番目が参考になる。 Programming with Arrows 『Arrowのはなし』西川仁 Haskell/Understanding arrows Arrowを使って奇数列を作ってみる。 0から始まる数列を&&&で分岐させて一方はそのまま戻して、もう一方はtailすることで1から始まる数列にして、合流したら足し合わせる。 Prelude Control.Arrow> let odds = (tail) &&& id >>> (uncurry (zipWith (+))) Prelude Control.Arrow> take 10 $ odds [0,1..] [1,3,5,7,9,11,13,15,17,19]
普段やるようなことをHaskellで書くようにすればよかろうとHaXmlとhttpをつかってみた。 ほとんどhttpのテストサンプルのget.hsだけど。HaXmlのほうはHaXml の Combinators を使って XML をいじるを参考にした。 import Data.Char (intToDigit) import Network.HTTP import Network.URI import System.Environment (getArgs) import System.Exit (exitFailure) import System.IO (hPutStrLn, stderr) import Text.XML.HaXml import Text.XML.HaXml.Xml2Haskell import Text.XML.HaXml.Pretty main = do arg
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く