2013-08-26 4 views
0
에서 변수를 정의

나는 하스켈에서 불변 변수를 선언하기 위해 노력하고있어?하스켈

답변

14

let은 최상위 수준 정의에서 사용되지 않습니다. 상단에 let를 사용하려고 시도하는 사람들을 위해

a = [1,2] 
main = print $ sum a 

또는

main = do 
    let a = [1,2] 
    print $ sum a 

또는

main = let a = [1,2] in print $ sum a 

혼란의 일반적인 소스입니다 일부 프로그램을 수정하는 방법에는 여러 가지가 있습니다 레벨은 ghci에있는 테스트 된 표현식을 실제 소스 파일로 변환하려고 할 때입니다.

let은 모나드 내부에서 작업 할 때 사용할 수 있습니다. ghci와 mainIO 모나드에서 작동하므로 ghci에 let a = [1,2]과 같은 것을 쓸 수 있습니다.

+0

ghci 또는 main 내부에서 수행하지 않습니다. –

+0

그것이 나에게 도움이되지 않는다면 왜 그렇게 말하고 있습니까? –

+0

@MariusKavansky 소스 파일 내에서 최상위 레벨 정의를 위해 let을 사용하지 마십시오. –