ログ日記

作業ログと日記とメモ

モナドが難しい・・

はてなみたいに :titleと書いたらタイトルを取ってくるように、という処理の仕方は分かった。
しかし・・パーサの中でtitleを見つけたらネットワーク処理をして・・ってやると戻り値にIOがついてしまう。


どうすればいいか全く分からない・・。

ネットワーク部分
String -> IO String


パーサ部分
String -> HTML (String型の構造)


パーサの中からネットワークを呼び出すには

IO String -> String
の変換が必要で・・・うーん。


unsafePerformIOというのを見つけたけれど、設定ファイルを読む場合とかにとどめた方が、ということらしい。
ネットワークなんてもろに動的だもんなぁ・・。
これを使ってしまうと、パーサの中でネットワークが繋がらないとかいうエラーも普通に起こる。


パーサからHTMLを受け取る関数は結果をIO Stringで返すので簡潔に書けそうな気がするが・・。