라자냐

라자냐

학습 연습 문제

소개

기초

함수

Gleam에서 함수는 pub fn 문법으로 정의해요.

pub fn add(x: Int, y: Int) -> Int {
  x + y
}

이 함수는 둘 다 Int 타입인 인자 두 개를 받고, Int 타입의 값을 반환해요. Gleam에는 return 키워드가 없어요. 함수에서 마지막 표현식의 값은 항상 _암묵적으로 반환_돼요.

인자의 타입 애너테이션과 반환 타입은 선택 사항이고, Gleam은 항상 코드의 타입을 완전히 검사해요. 보통 Gleam 프로그래머들은 명확성을 위해 함수에 타입 애너테이션을 붙이지만, 원한다면 생략해도 돼요.

pub fn add(x, y) {
  x + y
}

함수는 function_name(argument1, argument2) 문법으로 호출할 수 있어요.

pub fn double(x: Int) -> Int {
  // Call the add function defined above
  add(x, x)
}

변수

Gleam에서 변수는 let name = expression 문법으로 정의해요.

pub fn main() {
  let count = 1
}

변수는 타입 애너테이션과 함께 선언할 수 있어요. 함수 인자와 마찬가지로 이는 선택 사항이지만, 대부분의 Gleam 프로그래머들은 간결함을 위해 변수의 타입 애너테이션은 생략해요.

pub fn main() {
  let count: Int = 1
}

문자열 리터럴

Gleam에서 문자열은 큰따옴표로 작성해요.

pub fn greeting() {
  "Hello, world!"
}

코드 주석

주석은 소스 코드를 읽는 다른 개발자에게 메모를 남길 때 사용할 수 있어요. Gleam의 주석은 //로 시작하는 한 줄짜리예요.

pub fn main() {
  // This is a comment
  let x = 1
}

지침

이번 연습 문제에서는 좋아하는 요리책을 보고 근사한 라자냐를 만들 수 있도록 도와주는 코드를 작성해 볼 거예요.

라자냐를 조리하는 데 걸리는 시간과 관련된 다섯 가지 작업이 있어요.

1. 오븐에 있어야 하는 예상 시간(분) 정의하기

expected_minutes_in_oven 함수를 정의해요. 이 함수는 인자를 받지 않고, 라자냐를 오븐에 몇 분 동안 넣어 두어야 하는지 반환해요. 요리책에 따르면 오븐에 넣어 두어야 하는 예상 시간은 40분이에요.

expected_minutes_in_oven()
// -> 40

2. 남은 오븐 시간(분) 계산하기

remaining_minutes_in_oven 함수를 정의해요. 이 함수는 라자냐가 지금까지 오븐에 있던 실제 시간(분)을 인자로 받고, 앞의 작업에서 구한 예상 오븐 시간을 기준으로 라자냐가 오븐에 더 있어야 하는 시간(분)을 반환해요.

remaining_minutes_in_oven(30)
// -> 10

3. 준비 시간(분) 계산하기

preparation_time_in_minutes 함수를 정의해요. 이 함수는 라자냐에 넣은 층의 개수를 인자로 받고, 각 층을 준비하는 데 2분이 걸린다고 가정했을 때 라자냐를 준비하는 데 걸린 시간(분)을 반환해요.

preparation_time_in_minutes(2)
// -> 4

4. 총 작업 시간(분) 계산하기

total_time_in_minutes 함수를 정의해요. 이 함수는 두 개의 인자를 받아요. 첫 번째 인자는 라자냐에 넣은 층의 개수이고, 두 번째 인자는 라자냐가 오븐에 있던 시간(분)이에요. 이 함수는 라자냐를 조리하는 데 총 몇 분을 일했는지 반환해야 해요. 이 값은 준비 시간(분)과 그 시점까지 라자냐가 오븐에 있던 시간(분)을 더한 값이에요.

total_time_in_minutes(3, 10)
// -> 16

5. 라자냐가 완성되었음을 알리는 알림 만들기

alarm 함수를 정의해요. 이 함수는 인자를 받지 않고, 라자냐가 다 되어 먹을 수 있다는 메시지를 반환해요.

alarm()
// -> "Ding!"
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Gleam Exercism

라자냐 문제를 시작해 볼 준비가 됐나요?

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