Tables de hachage

Les tables de hachage servent à hacher des pingouins, dans le jargon du GOTO++ (ce n'est pas à prendre au sens propre). Autrement dit, cela permet de créer un troupeau de pingouins où l'on associe dynamiquement un pingouin à une étiquette texte. Pour créer un dictionnaire, en quelque sorte.

La notation utilisée ressemble à celle d'un troupeau anonyme, mis à part que les indices sont entre crochets et que ces indices doivent être du texte.

J[«Albert»]=«vert»
J[«Bertrand»]=«rouge à pois bleus»
GOTOPRINTDUTEXTE() ; &J[«Bertrand»] «Bertrand est un pingouin »
GOTO Affiche Bertrand est un pingouin rouge à pois bleus.

Remarquez qu'à partir d'une référence, on peut non seulement accéder à la valeur mais aussi à la clef (la clef c'est l'indice d'une table de hachage, Bertrand ou Albert dans l'exemple précédent). Pour cela on utilise l'opérateur ".

Z=J[«Albert»]
GOTOPRINTDUTEXTE() ; &Z" « est un pingouin » &Z#

Pour parcourir les différents éléments d'une table de hachage on utilise l'opérateur ++. Pour se placer sur le premier élément de la table on utilise la fonction PremierPingouin.

Z=PremierPingouin(J)
Taille=tailleenlongueur J
§1	GOTOPRINTDUTEXTE() ; &Z" « est un pingouin » &Z#
	Taille=-*(1)
	Z=&Z++*(1)
	GOTONONNULPOURLESNULS %1 &Taille