onceとは、一度しか式を評価しないという意味の単項演算子です。2度目以降は、最初に評価された式の値を返しつづけます。
次のようなことが可能になります。
foo : fun(val){
ary : once [];
ary.push_back(val);
println(ary);
}
foo(5); // [5]
foo(10); // [5, 10]
これは次のようなC++の例と似ています。
void foo(int val){
static std::vector<int> ary;
ary.push_back(val);
std::cout << ary << std::endl;
}