Haskell IO 관련해서 삽질하기 getChar, putChar

시간이 나면 조금씩 함수형 언어를 해볼려고 생각중인데, 생각만 하고, 노력은 안한다는…

사실 노력을 안한 이유 중에, 이거 haskell Sample을 아무리 따라해봐도 제대로 동작하지가 않는다.

-_-;; 그런데 엄청난 반전이 있었으니…

나를 괴롭히던 샘플 IO관련 인데

main :: IO()
main = do c <- getChar
                        putChar a

라는 함수가 있었다.

글자를 한자 stdin 으로 받아서 stdout 으로 뿌려주는 아주 단순한 예제인데 자꾸…

“The last statement in a ‘do’ construct must be an expression” 라는 에러가 나면서 샘플을 돌려볼 수가없는 것이었다.

그런데 –_-

위의 예제를 다음과 같이 하면 돌아간다.

main :: IO()
main = do
                        c <- getChar
                        putChar a

이런 젠장, do 와 같은 라인에 뭔가가 있으면 안되는 것이었다. T.T 왜 그런지는 나두 잘 모르겠지만, 계속 위의 에러가 나면서 T.T 모두들 이런 실수 안하시길…