하스켈을 처음 사용했습니다.람다 안에 하스켈 다중 바인딩
은 내가 주석을 해제
data Structure a = Single a | Multiple (a, Int) deriving (Show)
encodeM ::(Eq a)=> [a]->[Structure a]
encodeM l = map(\x -> (let size = length x
--h = head x
in if size>1 then Multiple (head x, size) else Single (head x)
)
) $ group l
(아흔 아홉 하스켈 문제에서 운동 중 하나에 내 솔루션)이 코드를 "-h = 머리 X"내가 얻을 : "`입력에 오류가 구문 분석 = 람다 내부에 여러 개의 문 '하자' "내가 사용하는 경우
그러나
xxx l= let size = length l
h = head l
in size
잘 작동은 왜 컴파일되지 않습니다"?
어디서
encodeM2 ::(Eq a)=> [a]->[Structure a]
encodeM2 l = map(\x->if si>1 then Multiple (head x, si) else Single (head x)
where si = length x)
에 의해 수 있도록 대체하기 위해 시도하지만, 무슨 잘못 그것뿐만 아니라 컴파일되지 않습니다?
감사합니다. 새로운 언어로 올 때, 당신은 습관을 바꿔야 만합니다. (습관은 이미 당신이 가진 언어들입니다.) 새로운 구문과 다른 생각으로 그것을 조정해야합니다. 귀하의 조언에 감사드립니다. – Blezz