[Lisp] 분기와 재귀
if문
if문은 요즘 언어의 if-else문과 동일한 논리구조를 가진다.
아래의 구조를 가진다.
if 조건식 (true식) (false식)
조건식의 값이 참이라면 true식을 반환하고 거짓이면 false식을 반환한다.
이를 응용하여 인자로 받은 수가 짝수인지 구별하는 is-even 함수를 구현해본다.

잘 돈다.
mod는 나머지셈 함수다. %연산자는 따로 없다...
이제 이걸 응용하면 재귀함수를 구현할 수 있다.
아래는 받은 수만큼 foo를 반복출력하는 함수다..

progn이라는 함수를 썼는데. 이건 단순히 인자로 받은 표현식들을 차례대로 수행하고 마지막 표현식을 반환하는 함수다.
cond문
condition의 약자인듯하다.
기존의 switch문과 동등하다 보면 된다.
구조는 아래와 같다.
cond (상태1 표현식1) (상태2 표현식2) ...
1과 2, 3만 식별해서 출력하는 간단한 함수를 구현해본다.

잘 돈다.
참고로 t는 true를 뜻하는 참값이다. 거짓은 nil, 또는 빈 리스트 ()로 표현한다.
참조
https://lynlab.co.kr/blog/6