숫자로 이루어진 문자열이 주어지면, 그 문자열에서 길이가 n인 모든 연속 부분 문자열을 나타나는 순서대로 출력해요.
예를 들어, 문자열 "49142"에는 다음과 같은 3자리 연속열이 있어요:
그리고 다음과 같은 4자리 연속열도 있어요:
5자리 문자열에서 6자리 연속열을 달라고 하면, 어떤 결과가 나오든 감수해야 해요.
이 연속열은 입력에서 _서로 인접한 위치_를 차지하기만 하면 되고, 숫자가 _수적으로 연속_일 필요는 없다는 점에 유의해요.
이 연습 문제를 완료하려면 text를 받아 지정한 크기의 숫자 부분 수열을 반환하는
slices 함수를 구현해야 해요:
이 연습 문제를 처음 푼다면, 제시된 시그니처를 그대로 따르는 걸 추천해요:
slices :: Int -> String -> [[Int]]
나중에 이 문제를 다시 풀어 보면서 다른 데이터 타입과 라이브러리를 가지고 놀아 보는 것도 좋아요:
ByteString
Sequence
Text
Vector
테스트 스위트는 의미가 통하는 거의 모든 타입 시그니처를 허용하도록 의도적으로 설계되었으니, 가장 좋다고 생각하는 시그니처를 찾아보세요.
Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.