Reader small image

You're reading from  Kotlin Design Patterns and Best Practices - Third Edition

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781805127765
Edition3rd Edition
Right arrow
Author (1)
Alexey Soshin
Alexey Soshin
author image
Alexey Soshin

Alexey Soshin is a software architect with 18 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design
Read more about Alexey Soshin

Right arrow

Recursive functions

In Chapter 5, Introducing Functional Programming, we explored the concept of recursive functions within the context of functional programming. A recursive function is one that calls itself, either directly or indirectly, to solve a problem by breaking it down into smaller instances of the same problem.

Certain types of problems lend themselves to elegant solutions using recursive functions. However, it’s crucial to note that every function call consumes stack space, and if the function is deeply nested, it may lead to a StackOverflowError. To address this concern, Kotlin offers an optimization called tailrec, which instructs the compiler to use constant stack space instead of growing the stack with each recursive call.

It’s important to acknowledge the limitation of tailrec: for a function to benefit from tail recursion optimization, it must call itself as the last operation in its body. This ensures that the result of the recursive call is...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Kotlin Design Patterns and Best Practices - Third Edition
Published in: Apr 2024Publisher: PacktISBN-13: 9781805127765

Author (1)

author image
Alexey Soshin

Alexey Soshin is a software architect with 18 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design
Read more about Alexey Soshin