함수에는 두 가지 종료 조건이 있습니다. 바늘을 찾거나, 배열이 비어 있으면 재귀 호출을 멈춥
니다. 호출할 때마다 배열의 길이가 줄어들므로 언젠가는 두 조건 중 하나를 만족하게 됩니다.
이번에는 좀 더 유용하고, 여러 번 검증된 예제를 살펴봅시다. 숫자의 계승
factorial
을 찾는 예제입
니다. 숫자의 계승은
1
부터 그 숫자까지를 전부 곱한 값이며 숫자 뒤에 느낌표를 붙여서 표시
합니다. 즉
4
!
는
4
×
3
×
2
×
1
=
24
입니다. 계승을 구하는 재귀 함수는 다음과 같이 만들
수 있습니다.
function
fact
(
n
) {
if
(
n
===
1
)
return
1
;
return
n
*
fact
(
n
-
1
);
}
이 함수의 종료 조건은
n
===
1
이고, 재귀 호출할 때마다 숫자
n
은
1
씩 줄어들다가 결국
1
이
됩니다. 이 함수에
0
이나 음수를 넘겨서 호출하면 물론 에러가 생기지만, 그런 상황을 막을 조
건문을 넣는 건 쉽습니다.
13.8
요약
ML
이나 하스켈, 클로저
Clojure
,
F
# 같은 다른 함수형 언어를 사용해봤다면 이 장은 아주 쉬웠을 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.
O’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
I wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
I’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
I'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.