I'm using this example to study Mathematics.Example Demo. In this example, before generating recursion tree, she flats the function. But I have a difficultly to understand how flatten works, especially the 3rd line of the code below. Could someone teach me? Thank you very much.
f[___, 0] := {};
f[___, 1] := {};
f[m___, p_] := {{m, p} -> {m, p, p - 1}, {m, p} -> {m, p, p - 2}, //How to understand this line?
f[m, p, p - 1], f[m, p, p - 2]}
j[n_] := f[n] // Flatten