Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Рекурсія / Рекурсія з multi-підпрограмами

Тест — Рекурсія з multi-підпрограмами

Маємо multi fact(0) { 1 } та multi fact($n) { $n * fact($n - 1) }. Яку роль відіграє кандидат multi fact(0)?

1Це базовий випадок — кандидат, якого диспетчеризація обирає, коли аргумент дорівнює 0
0Він задає типове значення, що повертається для будь-якого аргументу
0Він виконується першим на кожному виклику, перед іншим кандидатом
0Це обов'язковий синтаксис, який Raku ігнорує під час виконання

Літерал 0 у сигнатурі робить так, що цей кандидат підходить лише тоді, коли аргумент дорівнює точно 0. Це базовий випадок, виражений власною підпрограмою: поки аргумент більший, диспетчеризація й далі обирає multi fact($n), а щойно рекурсія досягає 0, вона перемикається на multi fact(0) і зупиняється.

Навігація курсом

Рекурсія з multi-підпрограмами   |   Степінь