Paso por valor y referencia - HP Prime

En HP PPL hasta ahora solo es posible crear funciones con argumentos pasados por valor; aunque la calculadora tiene comandos integrados como INPUT que modifican variables por referencia, es posible simular esa funcionalidad con EXPR.



Paso por valor y referencia
Definición de funciones

Los comandos y/o funciones en la calculadora tienen una sola forma de recibir parámetros, y es colocandolos entre paréntesis y separados por comas, esta acción lo que hace es pasar datos por valor, no existe un operador que modifique tal flujo.

No es posible crear funciones que pasen o reciban valores por referencia. La finalidad de una función así es para realizar una acción sobre una variable o grupo de variables distintas para cada ocasión que es usada (recordando que el fin de una función es ser reutilizada).


Simulando un paso por referencia

Se puede lograr un efecto similar al paso por referencia usando el comando EXPR (como se ha indicado en algunos videotutoriales), el cual puede ser usado de 2 formas para este fin. En los siguiente casos se usará 3 variables, a las cuales primero se le duplica y mostrado con MSGBOX, luego es triplicado y nuevamente mostrado; el resultado debe ser una lista de los nuevos valores, resultado esperado: {30,42,66}.


1. Función con formato habitual

Para lograr editar las variables desde diversos extremos del programa, debemos modificar el Ámbito de las variables necesarias (haciéndolas globales, idea que no agrada a muchos) para que la nueva función pueda acceder a ellas.



Ventaja: Permite verificar sintaxis antes de la ejecucción, el código en EXPR es mínimo.
Desventaja: Requiere hacer globales las variables involucradas.


2. Función como cadena

Gracias a la capacidad del comando EXPR, el cual consiste en insertar código en un subámbito; la función creada se encargará de crear una cadena de código, la cual se puede evaluar en cualquier ámbito.



Ventaja: Puede usar variables en cualquier ámbito.
Desventaja: La compilación se extiende a toda la función, requiere el uso de EXPR en cada uso.


Recordatorio

Este tipo de funciones requieren pasar siempre las variables involucradas como parámetro, ya que su objetivo es elegir la(s) variables(s) a utilizar. Estos métodos no son aconsejables en bucles de procesamiento, sobre todo la segunda forma mostrada; puede permitirse su uso siempre y cuando no sea crítico, el uso del comando EXPR consume más recursos de lo usual (se compila la cadena, que equivale a verificarla y estructurarla).


Comandos integrados

Las funciones propias solo pueden recibir datos por valor, al igual que la gran mayoría de comandos integrados que cuenta la calculadora, sin embargo existen comandos integrados en HP PPL que sí hacen uso de esta característica. A continuación se resalta los pocos comandos que actúan por referencia, algunos de tipo matriz y otros de tipo entrada.



No se menciona a los comandos de dibujo para la edición de Gráficos, puesto que el funcionamiento de estos se basa en pasar datos tipo función (G0-9 siempre asumidos como datos tipo función), así que podría parecer un funcionamiento de paso por referencia, pero las variables gráficas no son simples datos, los comandos aquí usan las variables como destino.


El contenido de este artículo ha sido extraído de un conglomerado de consideraciones respecto al lenguaje de programación HP Prime, vea el artículo original.

Comentarios

Lo más visto

Matriz (Tipo) - HP Prime