Курс по Raku / Регулярни изрази и граматики / Граматики / Дървото на разбора, make и made / Exercises / Умножете двойка

Решение: Умножете двойка

Ето едно възможно решение на задачата.

Код

grammar Product {
    token TOP { <a> '*' <b> { make $<a>.Int * $<b>.Int } }
    token a   { \d+ }
    token b   { \d+ }
}

say Product.parse('4*5').made;

🦋 Намерете програмата във файла multiply-a-pair.raku.

Изход

20

Коментари

  1. Двете числа се прихващат като <a> и <b>, като всяко се преобразува с .Int.

  2. Вграденият блок съчетава подсъвпаденията — умножава ги — и съхранява резултата върху съвпадението, което made след това връща.

Навигация в курса

Умножете двойка   |   Обърнете реда на думите