トラック
/
Elixir
Elixir
/
演習
/
高校の恋人
高校の恋人

高校の恋人

学習演習

はじめに

文字列

Elixirの文字列はダブルクォートで囲み、UTF-8でエンコードされています。

"Hi!"

文字列は<>/2演算子を使って連結できます。

"Welcome to" <> " " <> "New York"
# => "Welcome to New York"

Elixirの文字列は、#{}という構文による式の埋め込みに対応しています。

"6 * 7 = #{6 * 7}"
# => "6 * 7 = 42"

文字列に改行文字を入れるには、\nというエスケープシーケンスを使います。

"1\n2\n3\n"

改行の多いテキストを快適に扱いたいときは、代わりにダブルクォートを3つ重ねたヒアドキュメント構文を使いましょう。

"""
1
2
3
"""

Elixirには、文字列を扱うための関数がStringモジュールにたくさん用意されています。

パイプ演算子

|>演算子はパイプ演算子と呼ばれます。前の関数呼び出しの戻り値を、次の関数呼び出しの最初の引数として渡す形で、関数呼び出しをつなげることができます。

"hello"
|> String.upcase()
|> Kernel.<>("?!")

# => "HELLO?!"

説明

この演習では、高校時代の恋人同士がSNSで愛を告白できるよう、二人のイニシャルをASCIIのボックスにして生成するお手伝いをします。

❤-------------------❤
|  J. K.  +  M. B.  |
❤-------------------❤

1. 名前の最初の文字を取得する

HighSchoolSweetheart.first_letter/1関数を実装します。名前を受け取り、その最初の文字を返すようにします。名前に含まれる不要な空白は取り除きます。

HighSchoolSweetheart.first_letter("Jane")
# => "J"

2. 最初の文字をイニシャルとして整形する

HighSchoolSweetheart.initial/1関数を実装します。名前を受け取り、その最初の文字を大文字にして、ピリオドを付けたものを返します。前のステップで定義したHighSchoolSweetheart.first_letter/1を必ず再利用しましょう。

HighSchoolSweetheart.initial("Robert")
# => "R."

3. フルネームを名と姓に分割する

HighSchoolSweetheart.initials/1関数を実装します。スペースで区切られた名と姓からなるフルネームを受け取り、イニシャルを返します。前のステップで定義したHighSchoolSweetheart.initial/1を必ず再利用しましょう。

HighSchoolSweetheart.initials("Lance Green")
# => "L. G."

4. イニシャルをASCIIのボックスの中に入れる

HighSchoolSweetheart.pair/2関数を実装します。二つのフルネームを受け取り、ASCIIのボックスの中にイニシャルを入れて返します。ボックスを自分で描く必要はありません。コードのコメントに含まれているボックスを利用しましょう。前のステップで定義したHighSchoolSweetheart.initials/1を必ず再利用しましょう。

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => """
# ❤-------------------❤
# |  B. M.  +  R. L.  |
# ❤-------------------❤
# """
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Elixir Exercism

高校の恋人を始める準備はできましたか?

Exercismに登録すれば、58個のコンセプト168個の演習、そして本物の人間によるメンタリングとともに、Elixirを学んでマスターできます。すべて無料です。