Добрый день. Объясните, пожалуйста, как в данном примере работает знак “+” в рекурсии .generate-stairs (@n + 1); и знак"-" generate-stairs (@n - 1); Когда ставить плюс, когда минус? Как происходит подсчёт?
Знаки “+” и “-” работают, как обычные арифметические операторы. Во время вызова .generate-stairs(1) или .generate-stairs(10) в качестве параметра @n выступает число в скобках. В итоге получаются вложенные вызовы примесей:
Разница в условии.
Если .generate-stairs(@n) when (@n <= 10), то начальное значение @n равно 1 и на каждом следующем круге увеличивается на единицу.
Если .generate-stairs(@n) when (@n > 0), то начальное значение равно 10 и расчет идет в обратную сторону, то есть значение @n на каждом следующем круге цикла уменьшается.