Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Rekursio / Rekursio per multi-subprogramoj

Kvizo — Rekursio per multi-subprogramoj

Donite multi fact(0) { 1 } kaj multi fact($n) { $n * fact($n - 1) }, kian rolon ludas la kandidato multi fact(0)?

1Ĝi estas la baza kazo — la kandidato, kiun la disdono elektas, kiam la argumento estas 0
0Ĝi starigas defaŭltan valoron redonatan por ĉiu argumento
0Ĝi ruliĝas unue ĉe ĉiu voko, antaŭ la alia kandidato
0Ĝi estas postulata sintakso, kiun Raku ignoras je rultempo

La literalo 0 en la subskribo igas tiun kandidaton kongrui nur, kiam la argumento estas ekzakte 0. Ĝi estas la baza kazo esprimita kiel propra subprogramo: dum la argumento estas pli granda, la disdono daŭre elektas multi fact($n), kaj post kiam la rekursio atingas 0, ĝi ŝanĝiĝas al multi fact(0) kaj haltas.

Kursa navigado

Rekursio per multi-subprogramoj   |   Potenco