faculteit
blok te maken met een recursieve rapporteur. boom
is een goed voorbeeld; ieder boom
blok roept twee keer
boom
aan.
Recursieve commando's hebben vaak zo'n structuur, met meerdere commando's in de recursieve aanroep:
rapporteer
blok mag zetten.
Recursieve rapporteurs hebben verschillende structuren omdat ze maar één waarde kunnen rapporteren.
Omdat het rapporteer
blok een antwoord rapporteert, moet je het antwoord vooraf maken
of in de aanroep van het rapporteer
blok bouwen. Dus wat hieronder staat, is niet mogelijk:
Programma's die tekst verwerken, tellen het aantal woorden en letters in documenten. Je kan het aantal letters in een groep woorden tellen met een recursieve rapporteur.
letterteller
blok dat een lijst van woorden als invoer heeft en het totaal
aantal letters in alle woorden rapporteert. Het alles, behalve de eerste van
blok kan
handig zijn, maar er zijn meerdere manieren om het te doen. voeg samen
blok. Dit blok heeft als invoer een lijst en
als uitvoer een zin met spaties:
De lijstfuncties alles, behalve de eerste van
en voor
worden vaak gebruikt in
recursieve rapporteurs.
meervoud
blok, beschrijf daarna hoe het werkt. (Je hebt al een makkelijkere
versie van meervoud
gebouwd met behulp van map
; we willen dat je snapt
dat je hetzelfde probleem op meerdere manieren kan oplossen.)