Skip to content

Commit 5f4f8c5

Browse files
authored
Create recursion-trampoline.js
1 parent 102dedb commit 5f4f8c5

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

recursion-trampoline.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const trampoline = fn => (...args) => {
2+
let result = fn(...args)
3+
4+
while (typeof result === 'function') {
5+
result = result()
6+
}
7+
8+
return result
9+
}
10+
11+
12+
const sumBelowRec = (number, sum = 0) => (
13+
number === 0
14+
? sum
15+
: () => sumBelowRec(number - 1, sum + number)
16+
)
17+
18+
19+
trampoline(sumBelowRec)(100000,0)

0 commit comments

Comments
 (0)