# Writing a Recursive Function

**QUESTION:** Can I write a recursive function in IDL?

** ANSWER:** Yes. The only trick is to be sure to include the **FORWARD_FUNCTION** command inside the recursive function code before the function is called recursively. This will prevent IDL from interpreting the function call inside the code as a variable reference.

A famous recursive function is the one that calculates the factorial value of the number N. For example, N * (N-1) * (N-2) * ... * 1. Here is how you write that recursive function in IDL. (Click here to download the example IDL code.)

FUNCTION FACTORIAL, number FORWARD_FUNCTION FACTORIAL IF number LE 1 THEN RETURN, 1L RETURN, LONG(number) * FACTORIAL(number - 1) END

You can run the program by typing something like this:

IDL> PRINT, FACTORIAL(5) 120

Copyright © 1997 David W. Fanning

Last Updated 5 February 1997