digits :: Int->Int->Int
digits x y
|x`mod`10 == y`mod`10 = count x y
|otherwise = digits (x`div`10) (y`div`10)
count :: Int -> Int -> Int
k = 0 + 1
count x y
|x < 1 = getprize k
|otherwise = digits (x`div`10) (y`div`10)
getprize :: Int -> Int
getprize k
|k == 8 = 1000000
|k == 7 = 100000
|k == 6 = 8000
|k == 5 = 300
|k == 4 = 20
|k == 3 = 5
|k == 2 = 1
|k < 2 = k
|otherwise = 43
그래서이 코드를 하스켈에 작성했습니다. 목표는 입력 숫자 x, y가 얼마나 많은 숫자를 검색하고 카운터를 설정하려고 할 때입니다 (내 코드에서 k) 정수로 등록 된 k와 getprize를 호출 할 수 없습니다. 얼마나 많은 자릿수가 같은지 계산할 수 있도록 카운터를 int로 설정하는 방법은 무엇입니까?haskell의 카운터 설정 및 증분
는
기본으로 돌아가서 다른 언어에 대해 알고있는 모든 것을 잊어 버리고, haskell을 배워야한다고 생각합니다. 이 질문은 haskell의 작동 방식에 대한 모든 것에 대한 엄청난 혼란을 보여줍니다. 그것은 실제로 당신이 익숙한 것과 실제로 다릅니다. 여기에 영향을 미치려고하는 패턴은 매우 위험합니다. – Carl
실제로 정수형이 되시겠습니까? 아니면 정수형으로 만들까요? – leftaroundabout
@ Carl, 그게 학습 효과가 있다면. 구체적으로 어떤 아이디어를 수정해야하는지 알려주도록하십시오. – luqui