Write a Recursive Function with @ in Power Query M

Defines a function that calls itself using the @ self-reference operator, useful for recursive calculations like factorials.

Advanced M FunctionsAdvancedrecursionfunctionself-reference

Power Query M code

let
    Factorial = (n as number) as number =>
        if n <= 1 then 1 else n * @Factorial(n - 1)
in
    Factorial(5)

Notes

The @ before the function name marks a recursive self-reference - without it, M won't let a let-bound value refer back to itself.

Requirements

How to use this snippet

  1. In Power BI Desktop, choose Transform data to open Power Query, then open the Advanced Editor on a query (or start from a blank query).
  2. Paste the snippet and replace the placeholder names (tables, columns, file paths) with your own. Check the requirements above first.
  3. Run it through the Power Query M Formatter to tidy the layout.

Related Power Query M snippets

More Power Query M resources

Browse all 145 snippets in the Power Query M Code Snippets, or search the library for something similar to Write a Recursive Function with @.