String (0과 1)이 교대로 있는지 확인하는 재귀 함수를 작성하고 싶습니다.haskell에서 재귀를 사용하여 0과 1을 교대로 확인하십시오.
In: 101010
Out: True
In: 110010
Out: False
가 어떻게 이러한 함수를 작성할 수 있으며, 어떻게 그 논리를 이해하고있다 : 예를 들어
?
String (0과 1)이 교대로 있는지 확인하는 재귀 함수를 작성하고 싶습니다.haskell에서 재귀를 사용하여 0과 1을 교대로 확인하십시오.
In: 101010
Out: True
In: 110010
Out: False
가 어떻게 이러한 함수를 작성할 수 있으며, 어떻게 그 논리를 이해하고있다 : 예를 들어
?
난 당신이 0
1 사이의 목록 번갈아 내가이 재귀이 문제를 해결하는 좋은 방법이라고 생각 여부를 확인하는 기능을 요구 있다고 생각 :
alternates ('1':'1':_) = False -- always false if it repeats
alternates ('0':'0':_) = False -- always false if it repeats
alternates [] = True
alternates (x:xs) = alternates xs
마지막 줄은 다음과 같이 작동합니다.
xs
에 요소가있는 경우 처음 두 사례가 확인되었으므로 x
과 같지 않습니다. 따라서 앞으로 이동하여 xs
의 앞에서부터 확인할 수 있습니다.
일관성을 위해 True를 지정하려면 ""
및 "1"
또는 "0"
이 필요합니다. 번갈아 가며 반복하지 마십시오.
마침내 나는 멘토가 있습니다. 그리고 작동합니다. han 스, 멘토 – sabu
재귀가이를 해결하는 가장 좋은 방법은 아닙니다. – dave4420
코드를 표시하십시오. – Marcin
입력을 목록 또는 정수 (2 진수로 해석)입니까? – dave4420