He aprendido Clojure anteriormente y realmente me gusta el idioma. También amo a Emacs y he pirateado algunas cosas simples con Emacs Lisp. Sin embargo, hay una cosa que me impide hacer algo más sustancial con Elisp mentalmente. Es el concepto de alcance dinámico. Estoy asustado porque es tan extraño para mí y huele a variables semi-globales.¿Cómo convivir con el alcance dinámico de Emacs Lisp?
Así que con las declaraciones de variables no sé qué cosas son seguras para hacer y cuáles son peligrosas. Por lo que he entendido, las variables establecidas con setq entran dentro del alcance dinámico (¿es correcto?) ¿Qué pasa con las variables de let? En alguna parte que he leído que permite te permite hacer un alcance léxico simple, pero en otro lugar he leído que los vars también tienen un alcance dinámico.
Mi principal preocupación es que mi código (utilizando setq o let) accidentalmente rompe algunas variables de la plataforma o código de terceros que llamo o que después de dicha llamada mis variables locales se equivocan accidentalmente. ¿Cómo puedo evitar esto?
¿Hay algunas reglas simples que pueda seguir y saber exactamente lo que sucede con el alcance sin ser mordido de alguna manera extraña y difícil de depurar?
¡Respuestas impresionantes, gracias! – auramo
¡Muy buena pregunta! –