La semaine passé, j'ai brèvement mentionné l'homoiconicité présente dans Lisp dans le contexte d'intelligence artificielle. Pourtant, c'est un des concepts les plus intéressants de ce langage et je trouve qu'il serait dommage de ne pas l'explorer d'avantage.
Pour vous rappeller les bases de lisp, une fonction est construite ainsi :
(+ 1 2)
Le premier argument (+) représente une fonction et les arguments qui suivent sont passés à cette dernière.
Une liste est aussi construite de la même façon :
(list 'banane pomme orange)