>  기사  >  웹 프론트엔드  >  js 재귀 함수 적용을 체계적으로 정리하고 재귀 스택 폭발 문제를 해결합니다.

js 재귀 함수 적용을 체계적으로 정리하고 재귀 스택 폭발 문제를 해결합니다.

php是最好的语言
php是最好的语言원래의
2018-08-02 16:53:072314검색

js를 배울 때 재귀의 내용이 꽤 복잡하기 때문에 재귀에 관한 내용을 정리했습니다. 기사에서는 케이스 코드를 통해 자세히 소개하고 있는데, 글의 처음에는, 이후의 학습이 혼동되지 않도록 모든 사람이 지식 개념을 가질 수 있도록 재귀의 기본 내용을 소개했습니다. 그런 다음 재귀를 사용하는 예를 나열했습니다. apache php mysql

Preface

재귀 성능이 좋지 않다는 것은 부인할 수 없는 사실입니다. for 루프가 더 좋고 재귀를 배울 필요가 없다고 생각한다면 여기에서 읽지 마세요. 이 기사에 나오는 대부분의 코드는 학습 목적으로만 사용되며 프로덕션 환경에서는 사용하지 않는 것이 좋습니다. 그러나 함수형 프로그래밍에 관심이 있고 핵심 개념 중 일부를 깊이 이해하고 싶다면 계속 읽어야 합니다.

올해 초 하스켈을 배우기 시작했을 때 함수형 코드의 우아함과 단순함에 매료되었습니다. 코드는 실제로 이렇게 작성할 수 있습니다! 명령형 코드를 사용하려면 많은 프로그램을 작성해야 하는데, 이는 단 몇 줄의 재귀만으로 해결할 수 있습니다. 이번 글에서는 Haskell에서 본 재귀함수를 JS와 Python으로 번역하고, 모든 단계를 설명하려고 합니다. 마지막으로 재귀적 스택 폭발(Stack Overflow) 문제를 해결해 보겠습니다.

Recursion Basics

Python 코드로 시작한 다음 JS 구현을 보여줍니다.

재귀를 설명하는 많은 튜토리얼은 피보나치 수열을 설명하는 것으로 시작합니다. 그렇게 하면 이미 복잡한 개념을 사용하여 또 다른 복잡한 개념을 설명하는 것은 불필요하다고 생각합니다. 간단한 코드부터 시작해 보겠습니다.

다음 Python 코드를 실행하세요.

def foo():
 foo()

foo()

물론 오류가 보고됩니다.

위 내용은 js 재귀 함수 적용을 체계적으로 정리하고 재귀 스택 폭발 문제를 해결합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.