[haskell] 입력`= ‘에서 Haskell 오류 구문 분석 오류

나는 Haskell을 처음 사용하고 시작한 후 ghci시도했습니다.

f x = 2 * x

그리고 나는 얻었다 :

<interactive>:1:4: parse error on input `='

이해가 안 돼요

이상하게도 이전에는 잘 작동했습니다. Haskell을 잘못 구성했다고 생각합니다. ghc6을 다시 설치해도 문제가 해결되지 않습니다.

정보는 Ubuntu 10.4를 사용하고 ghc6의 버전은 6.12.1-12입니다.



답변

GHCi 7.x 이하에서는 내용 let을 정의 하려면이 필요 합니다.

Prelude> let f x = x * 2
Prelude> f 4
8

GHC 8.0.1부터 GHCi에서 최상위 바인딩이 지원 되므로 OP의 코드는 변경없이 작동합니다.

GHCi, version 8.0.1.20161213: http://www.haskell.org/ghc/  :? for help
Prelude> f x = x * 2
Prelude> f 4
8


답변

Haskell 소스 파일을 입력하면

f x = 2 * x

맞다.

ghci에 직접 입력 할 때 let줄 시작 부분에 입력해야합니다 .

let f x = 2 * x


답변

ghci 사용에 대한 좋은 경험 법칙은 입력하는 모든 코드가 do-block 의미론을 준수해야한다는 것입니다. 즉, 구문 론적으로 IO 모나드 내에서 프로그래밍하고 있다고 가정 할 수 있습니다 (이게 새로운 용어 인 경우 걱정하지 마십시오!이 자습서를 읽는 것이 좋습니다 ).

답변은 예를 통해이 점을 설명하며 IO 및 ghci의 특성에 대한 더 많은 작업 통찰력을 제공 할 수 있습니다.


답변

GHC 8.0.1부터는 더 이상 오류가 발생하지 않습니다.


답변