2015-01-05 13 views
0

저는 아직도 haskell 구문이 어떻게 작동하는지 이해하려고합니다. 그래서, 여기에 간단한 wai/warp 응용 프로그램이 있습니다.다음`myApp` haskell 함수에 어떻게 로직을 추가합니까?

{-# LANGUAGE OverloadedStrings #-} 
import Network.Wai 
import Network.HTTP.Types (status200) 
import Network.Wai.Handler.Warp (run) 

myApp _ respond = respond $ 
    responseLBS status200 [("Content-Type", "text/plain")] "Hello World" 

main = run 3000 myApp 

내가 putStrLn 전에이 상태 200에 "Hello World"일반 텍스트를 반환과 stdout에 텍스트를 인쇄 할 경우, 어떻게 그것을 구현하는 것이? 나는이에서와 같이 내가 잘못 뭐하는 거지 확실하지 않다

myApp _ respond = do putStrLn "processing request" 
        respond $ responseLBS status200 [("Content-Type", "text/plain")] "Hello World" 

답변

1

myApp

이 유형이 사실 내가 옳은 일을 했는데도 hellowai.hs : 7 : 5 : 입력 '응답'에서 구문 분석 오류가 발생했습니다
+0

:

myApp :: Request -> (Response -> IO ResponseReceived) -> IO ResponseReceived 

그래서이 같은 응답을 반환하기 전에 자신의 IO 작업을 추가 할 수 있습니다 –

+0

젠장, 탭이 공백으로 구성되지 않았다는 것을 알고 있습니다. 내 잘못이야. 이것은 잘 작동합니다. –

+0

하스켈은 공백에 민감합니다 - 일렬로 정렬하고 탭을 사용하지 않도록하십시오. 여기 내 코드 : http://lpaste.net/117798 – ErikR