]>
<< HaskellにLibraryを追加する | main | Python Challenge(5, 6) >>
Lv4
文字列で示されたURIをたどる
ex. "http://www.pythonchallenge.com/***/***?***=12345"というページの内容が
"*** *** **** *** 67890"であれば、
"http://www.pythonchallenge.com/***/***?***=67890"を開く。これを繰り返す。
Haskell HTTP packageを使う。ここのexample、test/get.hsをちょっと改変。
main = do
id <- getLine
getLinkedList id
getLinkedList id = case parseURI $ urip ++ filter (/= '\n') id of
Nothing -> err "Could not parse URI"
Just uri -> do
cont <- get uri
putStrLn cont
getLinkedList $ head $ reverse $ words cont
where
urip = "http://www.pythonchallenge.com/***/***?****="
ここ以外はtest/get.hsをそのまま。実行して末尾の数字を入れると動くけど……。getのたびにpythonchallenge.comに接続しなおしてるっぽいので遅い。Networkパッケージ本体を使えばもっと低レベルなところから作れるようだ。
http://www.panopticon.jp/mt/mt-tb.cgi/83
コメントする