♾️재귀 함수와 트램펄린 구조

재귀 함수를 만들 때는 다음과 규칙을 지키는 것이 좋다고 알려져 있다.

1 언제 멈출지 알아야 한다.

2 문제를 더 작은 문제나 한 단계로 풀 수 있는 문제로 작게 분리한다.

3 한 단계에서 무엇을 실행할지 결정한다.


🪄트램펄린 구조

자바스크립트는 너무 많은 재귀 호출이 이루어지면 쉽게 스택 깨짐이 발생한다.

이것을 방지하기 위해서는 트램펄린 구조를 이용해 스택 깨짐을 피할 수 있다.


----------

// 🔓스택 깨짐 발생 코드

const isEven = n => n === 0 ?

true :

isOdd(Math.abs(n) - 1)

const isOdd = n => n === 0 ?

false :

isEven(Math.abs(n) - 1)

isEven(100000)

// Uncaught RangeError: Maximum call stack size exceeded

----------


----------

//🔒트램펄린 적용 코드

const isEven = n => n === 0 ?

true :

() => isOdd(Math.abs(n) - 1) // 함수로 변경

const isOdd = n => n === 0 ?

false :

() => isEven(Math.abs(n) - 1) // 함수로 변경

const trampoline = (fun, arg) => {

let result = fun(arg)

while (typeof result === "function") {

result = result()

}

return result

}

trampoline(isEven, 100000) // true

----------

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 2월 5일 오전 6:47

 • 

저장 2조회 1,320

댓글 0

    함께 읽은 게시물

    Next.js 프로젝트를 AWS EKS에 배포하며 배운 것들

    ... 더 보기

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

    product.kyobobook.co.kr

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

     • 

    저장 21 • 조회 1,972


    GraphRAG 에 대한 생각

    2000년 초반부터 온톨로지 연구를 해왔고, 관심을 갖고 있는 사람으로서 GraphRAG 에 대해 갖고 있는 생각을 적어봤습니다.

    ... 더 보기

    <ChatGPT를 사용해본 프론트엔드 개발자의 후기>

    <인공지능은 과연 개발자를 대체할 수 있을까?> 요즘 세상이 인공지능 이야기, 챗지피티(chatGPT)와 관련된 이야기로 떠들썩하다. 어떤 사람은 드디어 인공지능에 있어서 특이점이 왔으며 이제 곧 머지 않아 많은 직업들이 대체될 것이라고 전망했으며, 어떤 사람은 어차피 있는 데이터들을 모아서 학습을 시키는 것일 뿐, 완벽하거나 인력을 대체할 만한 수준은 아니며 분명한 한계가 존재한다고 한다. 누구의 말이 맞을까? 나는 개발자로써, 이에 대해 생각을 해보았다. 우선, 정답은 아니더라도 나의 판단에 따른 ... 더 보기

    ChatGPT를 사용해본 프론트엔드 개발자의 후기

    Brunch Story

    ChatGPT를 사용해본 프론트엔드 개발자의 후기

     • 

    댓글 3 • 저장 56 • 조회 12,322


    Lottie vs WebP – iOS 앱에서 애니메이션 성능 비교

    i

    ... 더 보기

    Lottie vs WebP Animation

    iOYES

    Lottie vs WebP Animation

    IT 회사의 업무에서, 지금까지는 디자이너와 특히 개발자가 병목이었는데, 대 AI 시대에는 기획자가 병목이 될 수도 있겠다. 조금이라도 규모가 있는 기업에서의 가장 큰 병목은 보통 의사결정자라는 것을 생각해보면 그렇다.


    즉, 실무보다 의사결정을 AI에게 맡기는 것이 병목을 해소할 수 있는 가장 확실한 방법이며, 그러므로 부장님과 사장님을 AI로 대체하는 것이야말로 인류의 번영을 위한 가장 빠른 지름길이다. (아님. 아니 맞나?!)

     • 

    저장 1 • 조회 2,214