트랙
/
Clojure
Clojure
/
연습 문제
/
반짝반짝 깨끗이
반짝반짝 깨끗이

반짝반짝 깨끗이

학습 연습 문제

소개

문자 연산

Clojure의 문자는 java.lang.Character 원시 타입이고, 상호 운용을 통해 Character 클래스의 메서드로 다룰 수 있어요.

(Character/isDigit \2)
;;=> true

문자열 유틸리티

Clojure에는 강력한 문자열 처리 라이브러리인 clojure.string이 함께 제공돼요. 이 라이브러리는 상호 운용보다 더 관용적인 경우가 많아요.

지침

이번 연습 문제에서는 개발자가 식별자 이름을 정리하는 데 도움이 되는 유틸리티 루틴 일부를 구현해요.

5개의 과제를 거치면서 clean 함수를 차근차근 완성해 나가요. 유효한 식별자는 0개 이상의 문자와 밑줄로 이루어져요.

모든 경우에 입력 문자열은 nil이 아님을 보장해요. 함수에 빈 문자열이 전달되면 빈 문자열을 반환해야 해요.

빈 식별자는 아무런 효과가 없으니, 호출하는 쪽에서는 함수를 빈 식별자로 호출하지 않도록 해요.

1. 공백을 밑줄로 바꾸기

clean 함수를 구현해서 모든 공백을 밑줄로 바꿔요. 앞뒤에 있는 공백도 마찬가지예요.

(clean "my   Id")
;;=> "my___Id"

2. 제어 문자를 대문자 문자열 "CTRL"로 바꾸기

clean 함수를 수정해서 제어 문자를 대문자 문자열 "CTRL"로 바꿔요. 문자의 코드가 '\u0000'부터 '\u001F'까지의 범위에 있거나 '\u007F'부터 '\u009F'까지의 범위에 있으면 ISO 제어 문자로 간주해요.

(clean "my\u007FId")
;;=> "myCTRLId"

3. 케밥 케이스를 카멜 케이스로 변환하기

clean 함수를 수정해서 케밥 케이스를 카멜 케이스로 변환해요.

(clean "à-ḃç")
;;=> "àḂç"

4. 글자가 아닌 문자 생략하기

clean 함수를 수정해서 글자가 아닌 문자는 모두 생략해요. 참고: 밑줄은 이전 단계에서처럼 유지해야 해요.

(clean "1😀2😀3😀")
;; => ""

5. 그리스 소문자 생략하기

clean 함수를 수정해서 'α'부터 'ω'까지의 그리스 문자를 생략해요.

(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Clojure Exercism

반짝반짝 깨끗이 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Clojure 트랙을 개념 12개연습 문제 105개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.