Gostaria de fazer uma pergunta sobre vários valores de retorno, por que esse construto não é preferível em linguagens de programação (dificuldades conceituais e / ou técnicas). Eu ouvi algo sobre quadros de pilha e como eles reservam memória para valor de retorno e valores de retorno variáveis podem tornar isso problemático, mas se alguém pudesse explicar isso melhor, isso seria muito apreciado.
Em linguagens conctanetative (como FORTH), ter vários valores de retorno de uma função é uma coisa comum e muito útil, e imagino que algo parecido com isto em linguagens do tipo java / c também seria útil (um exemplo muito básico):
x, y = multRet(5);
multret(int x) {
return x+1;
return x+2;
exit;
}
Para esclarecer: não estou perguntando como retornar vários valores (essa é uma pergunta conhecida com respostas conhecidas), mas quero obter um esclarecimento sobre por que essa prática não é comum em linguagens de programação.
i=0; while (true) { return i; i+=1 }
?). Observe que algumas linguagens funcionais oferecem tuplas, uma alternativa melhor.
return
instrução. Ao retornar funções / lambdas, você pode ter razão.