Start Here
A curated path through the concepts that matter most for writing real M code. Work through these in order — each one builds on the last.
What's Next
Once you're comfortable with the core path, explore these topics in any order.
How M only computes values when they're actually needed, and what this means for side effects and performance.
Working with nested tables, lists, and records — expanding, combining, and transforming hierarchical data.
The five temporal types in M, how to convert between them, and the pitfalls that trip up even experienced M developers.
How M names are scoped inside let blocks, the @ self-reference operator, and why recursive functions need special syntax.
Ready-to-use recipes: date dimension tables, recursive list flattening, parameterized queries, and more.