Recursive functions

A function is recursive when it calls itself with another value for its argument. After a number of recursive calls, a base case must be reached that ends the recursion (otherwise it will go on indefinitely). A common example is the calculation of the factorial of a number, which goes like this: 

4! = 4 x 3 x 2 x 1 = 4 x 3! = 4 x 3 x 2! = 4 x 3 x 2 x 1! = 4 x 3 x 2 x 1 x 0! = 24 with the base case—0! = 1.

This can be easily translated into a Red fact function:

fact: func [n][        if n = 0 [ return 1]        n * fact n - 1]fact 4 ; 24

Here we used func, but, sometimes, recursion may need local variables, and function will then be more useful, because, for a function, locals are the default.

Now evaluate the following:

fact 4.0 ;(1) ...

Get Learn Red - Fundamentals of Red now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.