Pelo que pude notar, quando se passa um parâmetro (por exemplo a lista), é passada a referência. Desse modo, tem como eu especificar na declaração da função que ela não altera nada do argumento?
Algo semelhante ao código em C++:
C++
void imprimir_valor( const std::string valor ){
std::cout << valor << std::endl;
}