Outils pour utilisateurs

Outils du site


profgra:tests:surprenante

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
profgra:tests:surprenante [2017/10/22 22:01]
admin Ajout du lien Tree traversal
profgra:tests:surprenante [2017/10/26 09:01] (Version actuelle)
admin surprenante: homoiconicité
Ligne 195: Ligne 195:
 `(Somme (Produit 4 x) 5)`,  ​ `(Somme (Produit 4 x) 5)`,  ​
 nous allons devoir manipuler du code. nous allons devoir manipuler du code.
 +
 +## Homoiconicité
 +
 +Un concept intéressant ici : « *code is data* ».
 +
 +Nous ne voulons pas exécuter
 +`(Produit (Somme (Produit 2 x) 1) (Somme x 2))` en tant que programme,
 +mais travailler sur `(Produit (Somme (Produit 2 x) 1) (Somme x 2))` en tant
 +que valeur, ou encore comme donnée.
 +
 +C’est encore plus facile de passer de l’un à l’autre quand on utilise un
 +langage *homoiconique* (voir l’[article Wikipedia correspondant](https://​fr.wikipedia.org/​wiki/​Homoiconicit%C3%A9)).
 +En effet, les structures de données d’un langage homoiconique s’écrivent comme s’écrit le langage lui-même.
 +
 +Lisp est homoiconique car `(elt_1 elt_2 elt_3 ...)` est à la fois
 +l’écriture d’une liste de valeurs et l’écriture d’une instruction.
  
 ## Préparatifs ## Préparatifs
profgra/tests/surprenante.txt · Dernière modification: 2017/10/26 09:01 par admin