Gleam은 참과 거짓 값을 Bool 타입으로 표현해요. 값은 True와 False 두 가지뿐이에요. 이 값들은 변수에 담을 수 있어요.
let true_variable = True
let false_variable = False
&&, ||, ! 연산자를 사용하면 불리언 값을 다룰 수 있어요.
True && True // -> True
True && False // -> False
False || True // -> True
False || False // -> False
!False // -> True
!True // -> False
&&와 || 연산자는 단축 평가를 해요. 그래서 연산자 오른쪽의 표현식은 필요할 때만 평가돼요.
연산자마다 우선순위가 달라요. !는 &&와 ||보다 먼저 평가돼요. 중괄호를 사용하면 표현식의 한 부분을 다른 부분보다 먼저 평가할 수 있어요.
!True && False // -> False
!{True && False} // -> True
이 연습 문제에서는 클래식 게임 Pac-Man의 규칙 몇 가지를 Gleam 함수로 옮겨야 해요.
옮겨야 할 규칙은 네 가지이고, 모두 게임 상태와 관련되어 있어요.
인자가 어떻게 만들어지는지는 신경 쓰지 말고, 인자들을 조합해 원하는 결과를 반환하는 데만 집중해요.
eat_ghost 함수를 정의해요. 이 함수는 두 개의 인자(_Pac-Man이 파워 펠릿을 활성화했는지_와 Pac-Man이 유령에 닿아 있는지)를 받아, Pac-Man이 유령을 먹을 수 있는지에 대한 불리언 값을 반환해요. Pac-Man이 파워 펠릿을 활성화한 상태에서 유령에 닿아 있을 때만 True를 반환해야 해요.
eat_ghost(False, True)
// -> False
score 함수를 정의해요. 이 함수는 두 개의 인자(_Pac-Man이 파워 펠릿에 닿아 있는지_와 Pac-Man이 점에 닿아 있는지)를 받아, Pac-Man이 점수를 얻었는지에 대한 불리언 값을 반환해요. Pac-Man이 파워 펠릿이나 점에 닿아 있으면 True를 반환해야 해요.
score(True, True)
// -> True
lose 함수를 정의해요. 이 함수는 두 개의 인자(_Pac-Man이 파워 펠릿을 활성화했는지_와 Pac-Man이 유령에 닿아 있는지)를 받아, Pac-Man이 지는지에 대한 불리언 값을 반환해요. Pac-Man이 유령에 닿아 있고 파워 펠릿을 활성화하지 않았으면 True를 반환해야 해요.
lose(False, True)
// -> True
win 함수를 정의해요. 이 함수는 세 개의 인자(Pac-Man이 점을 모두 먹었는지, Pac-Man이 파워 펠릿을 활성화했는지, Pac-Man이 유령에 닿아 있는지)를 받아, Pac-Man이 이기는지에 대한 불리언 값을 반환해요. Pac-Man이 점을 모두 먹었고 3번에서 정의한 인자들에 따라 지지 않았으면 True를 반환해야 해요.
win(False, True, False)
// -> False
Exercism에 가입하고 Gleam 트랙을 개념 33개연습 문제 122개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.