Skip to content

Instantly share code, notes, and snippets.

@jooyunghan
Created January 12, 2018 13:26
Show Gist options
  • Save jooyunghan/0085a0f10edf393790e5477c1d37010f to your computer and use it in GitHub Desktop.
Save jooyunghan/0085a0f10edf393790e5477c1d37010f to your computer and use it in GitHub Desktop.
trampoline을 이용한 상호재귀
function even(n) {
if (n === 0) return true;
else return () => odd(n-1);
}
function odd(n) {
if (n === 0) return false;
else return () => even(n-1);
}
function trampoline(f) {
while (typeof f === 'function') {
f = f();
}
return f;
}
console.log(trampoline(() => even(100000)));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment