Network.CGI

ghc-6.6.1 を入れてみました! ソースから入れようと思ったらどこかで文法エラーがでてうまくできなかった (ノ_<。)

ちょっとおおきすぎるし、インタプリタは速いとはいえないみたいなので、XREA にあげるときはコンパイル済みのをあげることにしました。でもコンパイルとリンクのほうほうがよくわからなくて試行錯誤 (笑)

#!runghc

module Main where

import Network.CGI

cgiMain :: CGI CGIResult
cgiMain = do
          setHeader "Content-Type" "text/html; charset=utf-8"
          output "Hello, World! Haskell!"

main :: IO ()
main = runCGI $ handleErrors cgiMain

こんな感じのを書いて (shebung はデバッグ用です!)

ghc --make -o Hello.cgi Main.hs

こうすれば、勝手にリンクまでできちゃうみたい。

でも cgiMain の do の書きかたがわかってない (*ノ_<*)

setHeader :: MonadCGI m => String -> String -> m ()

ってなってるけど => ってなんだろう??? MonadCGI も見た目にはでてこないし、なんか暗黙的な参照ができるのかなぁ。ちゃんと Haskell の言語マニュアル読まなきゃ (笑)

cgiMain = 
          setHeader "Content-Type" "text/html; charset=utf-8" >>
          output "Hello, World! Haskell!"

って書いてもおなじみたい。>> は左のモナドに右の関数を連結?するらしいけど、連結ってなんだろう( ̄〜 ̄;)??