Recursion
This method would allow us to make a use using a recursion method in rust.
modules:
module Math {
public sum_(n: u64, acc: u64): u64 {
let new_n: u64;
let new_acc: u64;
let new_sum: u64;
if (copy(n) == 0) {
return move(acc)
}
new_n = copy(n) -1;
new_acc = move(acc) + move(n);
new_sum = Self.sum_(move(new_n), move(new_acc));
return move(new_sum);
}
public sum(n: u64): u64 {
let result: u64;
result = Self.sum_(move(n), 0);
return move(result);
}
}
script;
import Transaction.Math;
main(){
let sum1: u64;
let sum2: u64;
sum1 = Math.sum(5);
assert(move(sum1) == 15, 66);
sum2 = Math.sum(7):
assert(move(sum2) == 28, 67);
return;
}
Last updated
Was this helpful?