2013-09-27 2 views
-1
module Main 

alicebob :: String -> String 
alicebob "alice" = "Hi alice" 
alicebob "bob" = "Hi bob" 
alicebob _ = "Hi person whose name is neither alice nor bob." 

greet :: IO() 
greet = do 
     putStrLn "hi. whats your name?" 
     name <- getLine 
     putStrLn (alicebob name) 

간단한 프로그래밍 연습을 통해 일부 사용자 입력을 받고 답장합니다. 그냥 haskell을 배우기 시작하므로 간단한 질문을 변명하십시오. 온라인 alicebob :: String -> String에서 오류가 발생했습니다. 어떻게 해결할 수 있습니까?왜 [haskell] 컴파일 오류입니까?

+6

나중에 참조 할 수 있도록 컴파일러 오류에 대해 여기에 게시하는 경우 오류를 게시물에 붙여 넣어야합니다. @DanielFischer가 지적한대로'module main'의 끝에'where'를 놓친 것 뿐이었지만 언어를 앞당기면 오류를 한 눈에 확인할 수 없게됩니다. – bheklilr

+0

해당 라인에 오류가 있습니까? [ideone에서, 당신의 코드] (http://ideone.com/N3Mbye)는 실제로 "입력 모듈에서 구문 분석 오류"를 생성합니다. –

답변

8

모듈 헤더는 where

module Main where 
--   ^^^^^ 

컴파일러는 where (아마도 수출 목록 앞에)와 대신 alicebob을 발견 한 경우,이 오류가 발생합니다 찾을 것으로 예상하고 있어야합니다.

관련 문제