Declarar funciones y variables

Ver el tema anterior Ver el tema siguiente Ir abajo

Declarar funciones y variables

Mensaje por carlosmgilp el Sáb Jul 22, 2017 5:54 am

Hola muchachos hoy tengo una nueva duda.

Hace poco buscando en internet partes de lisp para solucionar algunas dudas, en el foro de autodesk en ingles (Idioma que no hablo) me di cuenta que en algunos lisp ellos declaraban tanto las funciones como las variables como locales.

Mi duda es, si el declarar las funciones tiene alguna validez?
Pues nunca lo había visto, sino hasta el día de hoy.

Por ejemplo de lo que vi.

Código:
(defun c:declaracion  (/
                       ;; Funciones
                       inicio funcion-programa fin
                       ;; Variables
                       obj sel pt1 pt2)
  (inicio)
  (funcion-programa)
  (seleccion)
  (fin)
  (princ))

Porque todo esto.
En mis programas, siempre utilizo el mismo patron.

Código:
(defun c:miprogram (/ obj sel pt1 pt2) (entro) (programa-a-ejecutar) (salgo) (princ))

En entro verifico que no haya comandos activos, guardo las variables del sistema, creo punto de restauración y imprimo en pantalla un resumen de lo que hace el programa
En programa-a-ejecutar va todo lo que hace el programa como tal.
En salgo restauro las variables, finalizo el punto de la restauración y cosas así.

Pero que pasa, hay veces que como que me dejan de funcionar los programas y tengo que cerrar el archivo y volverlo a abrir.
Ya tengo aplicado el control de errores y es mas pruebo de que se cumplan, yo mismo cometo todos los errores posibles y verifico que este restaurando todo y efectivamente lo hace, pero a medida de que sigo ejecutando otros programas míos como que se mezclan.
En el caso de la función (entro) como comente imprime un texto breve de lo que hace ese programa, por ejemplo, "rotula longitudes", perfecto lo muestre bien, pero ejecuto otro programa que debe decir "remunera vertices de una polilinea" y no lo hace, vuelve y me muestra el texto del programa anterior osea "rotula longitudes" y lo mas extraño del caso es que ese texto no esta en una variable para decir que se me paso y quedo como global.
También verifico todas las variables, para que no me queden como globales y me siguen pasando cosas así.
Otro ejemplo es que acostumbro después de seleccionar le cambio el color al objeto seleccionado para estar claro de la selección. Hasta ahí todo bien, pues como comente ya he echo pruebas de errores, si le doy clic contrario y finaliza el programa, se restaure el color, si le doy esc para cancelar el programa también funciona y se restaura el color y así todos los errores posibles, pero de un momento a otro me dejan de funcionar y ya el color que le aplique a la selección no se vuelve a restaurar.

Bueno si alguien sabe que puede pasar o sabe de algún método o si eso de la declaración de funciones funciona para algo, les agradecería cualquier información que me puedan dar.

Gracias.

carlosmgilp

Mensajes : 98
Fecha de inscripción : 17/03/2016
Edad : 35
Localización : Venezuela

Ver perfil de usuario

Volver arriba Ir abajo

Re: Declarar funciones y variables

Mensaje por nolo el Sáb Jul 22, 2017 12:15 pm

Tu mismo te has dado la respuesta
Si al correr un lisp defines un nombre global para una función, cuando vuelvas a utilizar ese nombre que definiste como global va a utilizar esa función que tu solo habías pensado para ese lisp.
Lo mejor es lo que apuntas, define funciones y variables locales para cada programa a menos que quieras utilizarlas en otros lisp dentro del mismo dibujo.

Un saludo

nolo

Mensajes : 144
Fecha de inscripción : 17/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

Re: Declarar funciones y variables

Mensaje por carlosmgilp el Sáb Jul 22, 2017 3:29 pm

Hola hermano gracias por la respuesta.
Pero ese es caso. Que no dejo ninguna variable global y eso es lo que me parece extraño.
Por eso al ver que habían personas que también declaraban los nombres de las funciones me quedo la duda de si eso servía para algo o son manías.
Gracias

carlosmgilp

Mensajes : 98
Fecha de inscripción : 17/03/2016
Edad : 35
Localización : Venezuela

Ver perfil de usuario

Volver arriba Ir abajo

Re: Declarar funciones y variables

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.