Dart Recursion Function
A recursion function is a function that calls itself in its body.
Finding factorial is a classic example to demonstrate Recursion function. We use the following formula to find factorial of N using recursion function.
n! = n * (n-1)!
which is basically
factorial(n) = n * factorial(n-1)
So, in order to find the result, the function has to delegate itself with a modified value of input.
Example
Now, let us write a factorial() function, that takes n as argument, and returns 1 if the n is 1, else it computes the product of n and factorial(n.- 1).
main.dart
</>
                        Copy
                        import 'dart:io';
int factorial(int n) {
  return n == 1 ? 1 : n * factorial(n - 1);
}
void main() {
  print('Enter N');
  int N = int.parse(stdin.readLineSync()!);
  int result = factorial(N);
  print('Factorial of $N');
  print(result);
}
Output
Enter N
4
Factorial of 4
24
Explanation
factorial(4) = 4 * factorial(3)
                        |
                   factorial(3) = 3 * factorial(2)
                                            |
                                      factorial(2) = 2 * factorial(1)
                                                            |
                                                         factorial(1) = 1 * factorial(0)
                                                                            |
                                                                           (1)
Summary
In this Dart Tutorial, we have learnt what a Recursion function is, and how to use it in Dart, with examples.
