Artículos de la categoría "elisp":
Mi (primera) intervención en un taller de hispa-emacs
Os traigo un enlace a mi (primera) intervención en uno de los talleres de hispa-emacs donde hablamos sobre cómo está construido este blog, vimos el código fuente por encima y realizamos un ejemplo de cómo se publicaría un artículo en él. El vídeo generado se puede encontrar a continuación.
(ver más...)Programación Orientada a Objetos en Emacs
A raíz del último artículo, donde hablaba de algunos lenguajes de la
familia de LISP, me han preguntado por la POOProgramación Orientada a Objetos que se puede hacer dentro de elisp
y su
compatibilidad con CLOSCommon Lisp Object System. En
elisp
encontramos el paquete con el acrónimo EIEIO, que significa
Enhanced Implementation of Emacs Interpreted Objects. No hay que
instalar nada, es uno de los paquetes built-in y lo encuentras
instalado con tu instalación de Emacs. En este artículo voy a hacer
una breve introducción a eieio
para todos aquellos que no pueden, o
sí, vivir sin objetos en su código y quieran usarlos programando para
Emacs en elisp
.
LISP y familia
LISP es el segundo lenguaje de programación más antiguo en activo. Como precursor de los lenguajes funcionales no ha pasado de moda. Me han preguntado por él y su familia y yo he contestado «muy bien. ¡Gracias!». Pero, hay muchos LISP, innumerables. En su día hubo tantos y tan diversos que tuvieron que crear la especificación commond lisp. Además es un lenguaje que ha inspirado otros muchos (a todos, o la mayoría de, los funcionales) y tiene también descendientes, de los que Scheme y Clojure son miembros destacados. Si hoy traigo este artículo es porque me preguntaron sobre LISP, sobre Scheme, sobre las similitudes, las diferencias y sobre la utilidad de aprenderlo o no.
(ver más...)Creación de un modo mayor para Emacs
Hacía que no me ponía a escribir en el blog, y no es por falta de ganas o por abandono, sino que he estado a otras cosas, que han acabado relacionándose también con el tema de la serie.
(ver más...)Variables de modo, keymaps y menús
Estamos acostumbrados a ajustar los paquetes que instalamos para que
se comporten de una u otra forma y eso es lo que vamos a hacer ahora
con nuestro modo de ejemplo datos-mode
. El código de ejemplo
utilizará dos variables para ello.
Creando un modo menor, sencillo y sin muchas pretensiones
Para seguir con el cursillo de elisp voy a crear un nuevo modo.
Va a ser un minor mode
, es decir, un modo que se puede activar como
secundario a otros modos generales. Lo primero que necesito es un
fichero que guarde el código en él y que se cargue desde la
configuración de Emacs.
Proyecto de ejemplo para seguir avanzando con elisp
Estoy en un punto muerto y no me decido en cómo continuar hablando sobre elisp. Creo que lo mejor sería hacer un pequeño ejemplo que implique un poco de programación y que sirva para repasar todo lo que hemos ido viendo hasta ahora.
(ver más...)Interacción con el usuario y widgets
Ya vimos cómo se podían hacer funciones que nos sirvieran de comandos y que se pudieran hacer de modo interactivo. Pero si la interacción se limita a llamar a una función, es posible que nos quedemos cortos, porque lo que necesitan los programas para funcionar son datos y la mayor fuente de datos es el propio usuario.
(ver más...)Comandos, módulos, marca, punto y otras zarandajas
Hasta ahora hemos venido trabajando directamente en el buffer
*scratch*
y todo ha ido funcionando bien, aunque nuestras funciones
y llamadas eran más bien efímeras. En este artículo vamos a guardar
el código, por primera vez, en un módulo, librería, fichero, o como lo
queráis llamar.
Funciones recursivas
En la entrega anterior hable sobre iteración, hoy hablaré sobre un mecanismo iterativo que se llama recursión. La recursión consiste en una función que se llama a sí misma para resolver la iteración. Normalmente la estructura recursiva implica que la función tenga una estructura similar a la siguiente:
(ver más...)Tipos de datos
Cuando escribimos un programa es porque necesitamos tratar la información como nosotros necesitamos que sea tratada. Esa información es lo que llamamos datos.
(ver más...)Un poco más sobre funciones
Una de las bellezas de Lisp, o de Smalltalk, es que se basan en un concepto claro y lo llevan hasta sus últimas consecuencias. En Smalltalk todo el sistema se basa en objetos enviándose mensajes entre ellos. Así, por ejemplo, en Smalltalk la forma de ejecutar código de manera condicional no depende de una palabra clave del lenguaje, sino que es un mensaje que se manda a un objeto lógico. Otros lenguajes recurren en su sintaxis a expresiones definidas por el intérprete o el compilador con lo que se llaman palabras reservadas. No voy a darle muchas vueltas más al tema de las palabras reservadas.
(ver más...)Sobre listas y atoms
Hoy toca ver un poco más sobre la programación en elisp. Concretamente cómo funcionan las listas y los tipos de datos que pueden contener. Hablaré también un poco sobre algunas funciones básicas para procesar listas.
(ver más...)Elisp para no programadores
Uno de mis propósitos para año nuevo era escribir una introducción a elisp para no programadores como yo. El objetivo es aprender: tengo comprobado que aprendo más cuando explico las cosas que cuando me las explican. Además, la documentación que encuentro sobre el tema en español es escasa. Si alguien decide leer esta serie de posts le debo advertir primero de una serie de hechos que pueden resultarle extraños:
(ver más...)