ピカピカ

ピカピカ

学習演習

はじめに

文字の操作

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に登録すれば、12個のコンセプト105個の演習、そして本物の人間によるメンタリングとともに、Clojureを学んでマスターできます。すべて無料です。