2010-04-06 15 views

Respuesta

36

CL-PPCRE a menudo se cita como un buen ejemplo, por una buena razón. En realidad, probablemente cualquiera de las bibliotecas de Edi Weitz sea buena para leer, pero CL-PPCRE es particularmente inteligente y es una biblioteca útil e impresionante. Más allá de eso, muchas implementaciones de CL están escritas principalmente en CL. Puede ser bastante productivo elegir una parte de CL que generalmente se implementa en CL y comparar cómo las manejan diferentes implementaciones. En particular, algunos de los mejores ejemplos de grandes macro sistemas útiles son implementaciones de cosas en el estándar. Loop es una lectura interesante, o si eres realmente ambicioso podrías comparar algunas implementaciones de CLOS.

Si hay alguna área de informática en la que esté particularmente interesado, podría valer la pena mencionarla para que las personas puedan adaptar sus recomendaciones a eso.

+1

[Sacla] (http://homepage1.nifty.com/bmonkey/lisp/sacla /index-es.html) implementa una porción considerable de Common Lisp en Common Lisp, por lo que sería un buen ejemplo de lo que sugiere. – jmbr

28

Es otro libro, por lo que no puede ser exactamente lo que está buscando, pero de Peter Norvig Paradigms in Artificial Intelligence Programming contiene una gran cantidad de bien escritos, programas de Common Lisp más bien pequeñas. No es un código perfectamente natural, especialmente en los primeros capítulos, porque, como el código en Practical Common Lisp, se enfoca en enseñarte cómo programar en CL, pero aún vale mucho la pena leerlo. También contiene algunos excelentes ejemplos de formas en que puede compilar otros idiomas además de Common Lisp, y tiene algunos consejos valiosos sobre cómo mejorar el rendimiento de los programas de CL.

+1

Es una excelente recomendación. El código en el libro es generalmente muy bueno, pero Norvig explica más y más cómo escribir mejor código de cha pter al capítulo. Él comienza con versiones básicas y luego muestra cómo mejorarlo. –

+2

Definitivamente apoyaría esto. PAIP es uno de mis libros favoritos sobre programación, aunque el nombre es un poco engañoso, en mi humilde opinión. Una cosa que diría al respecto es que el estilo parece un poco "pasado de moda" o académico para mí. Sin embargo, eso no es una crítica, me parece que el lenguaje CL de moda ha cambiado un poco en los últimos 10-15 años, pero no hay nada de malo en el código que no sigue la moda. –

11

Las otras recomendaciones (PAIP y CL-PPCRE) son excelentes. También sugeriría que me familiarizara con el código Alexandria y también echando un vistazo al GBBopen.

+0

Nunca escuché hablar de GBBopen, ¡gracias por el enlace! –

2

Lo único que ofrecería es programar. Eso es lo que hice.

Hice dos cosas. Uno de ellos abordaba un problema con el que estaba familiarizado, un marco de prueba de unidades y lo expandí para incluir suites de prueba. Para obtener una comprensión de macro escritura.

Lo segundo que hice fue jugar con objetos básicos en CL. Macros, cierres y estilo

Además, no se olvide de recibir comentarios de Lispers sobre su código.

(defun ugly-lisp-code?()())

+2

Tiene toda la razón de que necesita programar realmente para desarrollar competencia. Sin embargo, al igual que con los autores (y usted toca esto), a veces necesitamos ver qué significa "bueno" para poder emularlo. –

+0

Es más que hacerlo 'bueno', sin embargo. Pruebe el cambio de imperativo a declarativo "BUENO". – Gutzofter

8

El arte del Protocolo meta objeto - es un libro con el código más bella jamás escrita.

3

LISP (Lisp In Small Pieces) es un libro ordenado; muestra clossette (sistema pequeño de obect) y algunas cosas del compilador. Sin duda, el libro de Norvig es asombroso.

También me gusta "construir problemas para los problemas" pero el código es un poco ruf. No soy acostumbrado a vincular variables de ámbito dinámico en la lista de parámetros. Pero resultó muy divertido hacer las mejoras intentando "precompilar" la red de discriminación.Este libro da otros acercamientos a algunos de los códigos de Norvig; Sigo pensando que el código de Norvigs es mucho más "limpio y ordenado" (es más fácil de leer y comprender, y aún así ser creativo).

"solucionadores de problemas de construcción" debe venir con una etiqueta de advertencia como "Vas a necesitar algunos aspiren (SP). Se sentía como un rayo de luz que me impactó en la cabeza cuando finalmente 'entendido' y rms dependencia de sussmans dirigido back-tracking. Compilar el pdis también fue brillante. Cosas excelentes. Ojalá pudiera recordar todo ...