Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación funcional / Recursión / Recursión con subrutinas multi

Quiz — Recursión con subrutinas multi

Dados multi fact(0) { 1 } y multi fact($n) { $n * fact($n - 1) }, ¿qué papel juega el candidato multi fact(0)?

1Es el caso base: el candidato que el despacho elige cuando el argumento es 0
0Fija un valor por defecto que se devuelve para todo argumento
0Se ejecuta el primero en cada llamada, antes que el otro candidato
0Es sintaxis obligatoria que Raku ignora en tiempo de ejecución

El literal 0 de la firma hace que ese candidato coincida solo cuando el argumento es exactamente 0. Es el caso base expresado como subrutina propia: mientras el argumento sea mayor, el despacho sigue eligiendo multi fact($n), y en cuanto la recursión llega a 0 cambia a multi fact(0) y se detiene.

Recursión con subrutinas multi   |   Potencia