Skip to content

Commit ac991d9

Browse files
committed
Tail recursion optimization
1 parent 97213c5 commit ac991d9

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

JavaScript/7-tail.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict';
2+
3+
const add = (n, acc = 0) => {
4+
if (n === 0) return acc;
5+
return add(n - 1, acc + n);
6+
};
7+
8+
console.log(add(3));
9+
10+
const tail = (n, acc = 0) => {
11+
while (true) {
12+
if (n === 0) return acc;
13+
acc = acc + n;
14+
n = n - 1;
15+
}
16+
};
17+
18+
console.log(tail(3));

0 commit comments

Comments
 (0)