Recursion

Gleam няма цикли (loops), вместо това итерацията се прави чрез рекурсия, т.е. чрез функции на най-високо ниво, които извикват самите себе си с различни аргументи.

Всяка рекурсивна функция трябва да има поне един базов случай (base case) и поне един рекурсивен случай (recursive case). Базовият случай връща стойност, без да извиква функцията отново. Рекурсивният случай извиква функцията отново с различни аргументи, което повтаря цикъла.

Стандартната библиотека на Gleam има функции за различни често срещани цикли, някои от които ще се разгледат в следващите уроци, но за по-сложни цикли рекурсията често е най-лесният за четене начин да се напишат.

Рекурсията може да ви изглежда обезкуражаваща, ако сте свикнали с езици, които имат специални инструменти за итерация, но не се отказвайте! С времето ще ви стане толкова позната, колкото и всеки друг начин за итерация.