Controle de fluxo e funções
fn classify(score: int) -> string {
if score >= 90 {
return "A";
} else if score >= 70 {
return "B";
} else {
return "C";
}
}
Parâmetros são posicionais e o retorno usa ->. A análise valida escopo,
aridade, operandos e retornos. Recursão existe, mas não há limite configurável:
uma recursão profunda pode causar stack overflow.
Laços
let mut n = 3;
while n > 0 {
print(n);
n = n - 1;
}
loop {
break;
}
continue avança para a próxima iteração. for, ranges e match são
experimentais e diferem entre VM e interpretador. Ranges podem materializar
todos os valores e consumir memória proporcional ao tamanho.
for item in [10, 20, 30] {
print(item);
}
Valide código experimental nos dois backends:
nova run main.nova --backend vm
nova run main.nova --backend interp
switch, try/catch/throw, defer e yield são apenas front-end e recebem
A0001; não são mecanismos utilizáveis nesta alpha.