Вот рекурсивное решение:
define method sumSquaresFromOne(n :: <integer>)
if (n = 1)
1
else
n *n + sumSquaresFromOne(n - 1)
end
end method;
(Очевидно, что может быть полезна некоторая проверка для n <1.) </p>
Чтобы запустить метод, вы должны выполнить команду:
format-out("%d", sumSquaresFromOne(5))
Вывод которого будет "55" (1 + 4 + 9 + 16 + 25).
Вы можете создать метод main следующим образом:
define method main(appname, #rest arguments)
format-out("Input an integer number n:")
let n = read-line(*standard-input*)
format-out("Sum of squares from t to %d is %d\n", n, sumSquaresFromOne(n))
exit(exit-code: 0);
end method;