2013-05-30 6 views
3

나는 하스켈 책을 읽고 있어요는 :오류 : 입력을 구문 분석 오류 '='

parse error on input `=' 
: http://learnyouahaskell.com/types-and-typeclasses

내가 인터프리터이 줄을 입력

removeNonUppercase st = [c | c <- st, c `elem` ['A' .. 'Z']] 

나는이 오류

이 오류의 원인은 무엇입니까?

+0

정의를 인터프리터에 직접 입력하는 대신 파일에 저장하는 습관을 얻는 것이 가장 좋습니다. 그런 식으로 변경하는 것이 훨씬 쉽습니다. – AndrewC

답변

5

인터프리터 또는 GHCi 스크립트 파일 (즉, 하스켈 모듈이 아님)에서 변수 또는 함수를 정의 할 때 let 키워드를 사용해야합니다. 당신이 글로벌 do - 블록에있는 것처럼 인터프리터가 본질적 역할을하기 때문에

> let removeNonUppercase st = [c | c <- st, c `elem` ['A' .. 'Z']] 

이다. 당신의 코드는 Haskell 소스 파일에서 그대로 될 것이다.

이 오류가 인터프리터 외부에있는 경우 들여 쓰기를 엉망으로 만들거나 근처 코드에 다른 구문 오류가있을 수 있습니다.

관련 문제