Otro novato (Común) pregunta LISP:referencias variables en Lisp
Básicamente en la mayoría de los lenguajes de programación que hay una media de funciones para recibir referencias a variables en lugar de sólo los valores, es decir, el paso por referencia en lugar de pasar por valor . Digamos que, en aras de la simplicidad, quiero escribir una función LISP que recibe una variable y aumenta el valor de la variable por uno:
(defun increase-by-one (var)
(setf var (+ var 1)))
Ahora, evidentemente, el problema es que esta función sólo aumenta el valor de la copia de la variable en la pila, no la variable original real. También intenté lograr el efecto mediante el uso de macros sin mucho éxito, aunque tengo la sensación de que usar macros es el camino correcto.
Llegué a esta pared todo el tiempo en LISP y estoy seguro de que debe haber una forma de evitarlo o tal vez hay un enfoque completamente diferente para este problema en LISP en el que no había pensado. ¿Cómo se hacen cosas como esta en LISP?
EDIT: Varias personas han sugerido usar incf
. Solo utilicé este ejemplo para demostrar el problema de una manera simple, no estaba buscando reimplementar incf. Pero gracias por las sugerencias de todos modos.
Dice "la mayoría de los lenguajes de programación", pero ¿hay idiomas con características que no sean C++ y Perl? –