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

高校の恋人

学習演習

はじめに

パイプ演算子

|>演算子は、パイプ演算子と呼ばれます。関数呼び出しをつなげるために使うことができ、前の関数呼び出しが返した値が次の関数呼び出しに渡されます。

"hello"
|> string.uppercase
|> string.append("?!")
// -> "HELLO?!"

上のコードは、次のコードと同じです。

string.append(string.uppercase("hello"), "?!")

パイプ演算子は、値を関数呼び出しの最初の引数として渡すか、新しい呼び出しの唯一の引数として渡すかのどちらかです。正しい型になるほうが選ばれます。

100
|> function_that_takes_two_arguments(1)

// Is equivalent to
function_that_takes_two_arguments(100, 1)
100
|> function_that_returns_a_function(1)

// Is equivalent to
function_that_returns_a_function(1)(100)

値を別の位置に渡したいときもあります。その場合は、_プレースホルダーを使って、値をどこに挿入すべきかを示せます。

100
|> some_function(1, _, 2)

説明

この演習では、高校時代の恋人同士がSNSで愛を告白できるように、二人のイニシャルをあしらったASCIIのハートを生成します。

     ******       ******
   **      **   **      **
 **         ** **         **
**            *            **
**                         **
**     J. K.  +  M. B.     **
 **                       **
   **                   **
     **               **
       **           **
         **       **
           **   **
             ***
              *

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

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

first_letter("Jane")
// -> "J"

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

initial関数を実装しましょう。名前を受け取り、その最初の文字を大文字にし、ドットを付けて返します。前のステップで定義したfirst_letterを再利用しましょう。

initial("Robert")
// -> "R."

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

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

initials("Lance Green")
// -> "L. G."

4. イニシャルをハートの中に入れる

pair関数を実装しましょう。2つのフルネームを受け取り、ASCIIのハートの中にイニシャルを入れたものを返します。前のステップで定義したinitialsを再利用しましょう。

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

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

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