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 모두들 이런 실수 안하시길…

Advertisements

하스켈 프로그래밍(1) – 연습문제

qsort[]  = []
qsort(x:xs) = qsort larger ++ [x] ++ qsort smaller
    where
     smaller = [a | a<- xs, a <= x]
     larger = [b | b <- xs, b > x]
     
double x = x * 2

 

파일로 저장한건 되는데 왜, 그냥 번역기에서 돌리면 안될까?