저는 하스켈을 처음 접했고 몇 가지 자습서를 시도하고 있습니다. 나는이 스크립트를 썼다 :Haskell에서 함수를 정의하는 올바른 방법
lucky::(Integral a)=> a-> String
lucky 7 = "LUCKY NUMBER 7"
lucky x = "Bad luck"
내가 lucky.hs로이 저장되고 인터프리터를 실행하고 그것을 잘 작동합니다.
하지만 함수 정의가 확실하지 않습니다. 그것은 내가 다음과 같이 내가 똑같이 기능 운 정의 할 수 있습니다 읽었습니다 작은에서 보인다 (함수 이름은 lucky2입니다) :
lucky2::(Integral a)=> a-> String
lucky2 x=(if x== 7 then "LUCKY NUMBER 7" else "Bad luck")
모두 동일하게 작동하는 것. 명확하게 기능을 행운의 읽을 수 있지만 럭키 2 함수를 작성하는 올바른 방법은 무엇입니까?
내가 아는 한, 그들은 의미가 같지만 첫 번째 것은 더 멋지게 보이고 하스켈에서 선호하는 방법입니다. 저는 하스켈 숙달이 아니며 잘못되었을 수도 있기 때문에 답변으로 게시하지 않을 것입니다. – Matej
그건 그렇고, 괄호는 필요 없습니다.''lucky2 x = if x == 7 then "Lucky Number 7"else "Bad luck"' – sdcvvc
또한 타입을''lucky :: Integral -> String' . '=>'의 왼쪽에있는 이름 짓기는 같은 유형이 두 번 필요할 경우를위한 것입니다. –