트랙
/
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)

지침

이 연습 문제에서는 고등학교 커플이 소셜 미디어에서 사랑을 고백할 수 있도록, 두 사람의 이니셜이 들어간 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 함수를 구현해요. 전체 이름 두 개를 받아서 ASCII 하트 안에 들어간 이니셜을 반환해야 해요. 이전 단계에서 정의한 initials를 꼭 다시 사용해요.

pair("Blake Miller", "Riley Lewis")
// -> "
//      ******       ******
//    **      **   **      **
//  **         ** **         **
// **            *            **
// **                         **
// **     B. M.  +  R. L.     **
//  **                       **
//    **                   **
//      **               **
//        **           **
//          **       **
//            **   **
//              ***
//               *
// "
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Gleam Exercism

고등학교 연인 문제를 시작해 볼 준비가 됐나요?

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