3 ms·
Makes sense to me, assuming 'til' is 'iota' and 'prd' is 'fold-with-multiplication'. I don't know Q, but I'd guess you read it right-to-left like J/K/APL. `x`
by PeCaN 10y ago
Makes sense to me, assuming 'til' is 'iota' and 'prd' is 'fold-with-multiplication'.
I don't know Q, but I'd guess you read it right-to-left like J/K/APL. `x` is the right argument (in J it's `y`), so if we were to call `factorial 5`:
1. Create an array of [0,x) | 0, 1, 2, 3, 4
2. Add 1 to each element of the array | 1, 2, 3, 4, 5
3. Fold the array with multiplication | 120
Array languages are super elegant and fun once you use them a bit.