59 lines
1.2 KiB
Markdown
59 lines
1.2 KiB
Markdown
---
|
|
title: "Techniques d'encodage"
|
|
weight: 10
|
|
---
|
|
|
|
# Techniques d'encodage
|
|
|
|
Il existe deux manières d'encoder des structures de données.
|
|
|
|
## Encodage algébrique
|
|
|
|
On peut encoder des structures de données directement dans les rayons comme
|
|
on le ferait en programmation fonctionnelle.
|
|
|
|
Dans ce cas-là, les structures de données sont vues comme des objets statiques
|
|
qu'on évalue. Cela nous donne principalement des structures d'arbres et
|
|
d'ensembles.
|
|
|
|
Par exemple :
|
|
|
|
```
|
|
'unary integer
|
|
+nat(s(s(s(0))));
|
|
|
|
'pair
|
|
+pair(a b);
|
|
|
|
'list
|
|
+list(0 1 0);
|
|
+list(0:1:0:e);
|
|
+list(0(1(0(e))));
|
|
+cons(0, +cons(1, +cons(0, e)));
|
|
|
|
'tree
|
|
-and(-or(X Y) -not(Y));
|
|
|
|
'set
|
|
+a +b +c +d +e; 'dependent
|
|
+a; +b; +c; +d; +e; 'independent
|
|
+list(0(1(e))) +nat(s(s(0))) +cons(0, +cons(1, e));
|
|
|
|
'graph
|
|
+e(1 2); +e(2 3); +e(1 4);
|
|
```
|
|
|
|
## Encodage interactif
|
|
|
|
On peut aussi encoder une structure en jouant sur la compatibilité entre les
|
|
rayons. Ainsi, la géométrie de la structure est reflétée par les dépendances
|
|
entre les rayons.
|
|
|
|
Une liste prendrait la forme d'étoiles qui peuvent s'enchaîner durant
|
|
l'exécution. Un arbre serait un ensemble d'étoiles dont les dépendances forment
|
|
une arborescence.
|
|
|
|
Dans ce cas, on encode les structures de données par des sortes d'hypergraphes
|
|
interactifs.
|
|
|