2012-05-22 4 views

답변

4

괄호가 없습니다.

... 
else do return (length line) 

그러나 유형 오류도 있습니다. edasaNr 함수의 유형은 무엇입니까? 인수가 주어진 경우 일부 IO를 수행하고 Int을 반환해야합니다.

그래서 그것이 더 나은로 기록 될 것입니다 : 또한 당신이 n 인수를 사용하지 않는 것을 알 수

edastaNr :: a -> IO Int 
edastaNr n = do 
    putStrLn "Anna rida:" 
    line <- getLine 
    if null line 
    then return 0 
    else return $ length line 

(그래서 모든 유형을 가질 수 있습니다).

+6

또한''null line '은''length line == 0''을 의미하므로 조건부조차 필요하지 않습니다. –

+0

타입'a -> IO Int'는 더 이상 "use"의 의미에 대해 - 적어도 foo n = seq n $ return 0' - 인자를 사용하지 않는다는 것을 의미하지 않습니다. –