]> Panopticon :: Haskell :: Python Challenge(4)

<< HaskellにLibraryを追加する | main | Python Challenge(5, 6) >>

Python Challenge(4)

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パッケージ本体を使えばもっと低レベルなところから作れるようだ。

カテゴリ

Trackback URI

http://www.panopticon.jp/mt/mt-tb.cgi/83

Trackbacks(0)

コメントする