Cursus Raku / Geavanceerd / Operatoren / Meta-operatoren / Exercises / Elke faculteit tegelijk
Oplossing: Elke faculteit tegelijk
Hier is een mogelijke oplossing voor de opgave.
Code
say [\*] 1..6;🦋 Je kunt de broncode vinden in het bestand factorial.raku.
Uitvoer
(1 2 6 24 120 720)Opmerkingen
De backslash binnen de haken verandert
[*]in een driehoeksreductie. In plaats van de lijst tot een enkele waarde samen te vouwen, bewaart hij elk gedeeltelijk product:1, dan1*2, dan1*2*3, enzovoort.Elk gedeeltelijk product
1*2*...*kis precies k!, dus het resultaat is de lijst van faculteiten van1tot en met6. Een gewone[*] 1..6zou alleen de laatste hiervan hebben gegeven,720.