[ << Tutorial de l’Scheme ] | [Top][Contents][Index] | [ Interfícies per a programadors >> ] |
[ < Llistes associatives (listas-A) ] | [ Up: Tipus de dades compostes de l’Scheme ] | [ Càlculs a l’Scheme > ] |
Taules de hash
Estructures de dades que s’usen al LilyPond de forma ocasional. Una Taula de hash és semblant a una matriu, però els índexs de la matriu poden ser qualsevol tipus de valor de l’Scheme, no sols enters.
Les taules de hash són més eficients que les llistes_a si hi ha una gran quantitat de dades a emmgatzemar i les dades canvien amb molt poca freqüència.
La sintaxi per crear taules de hash és una mica complexa, però veurem exemples d’això al codi font del LilyPond.
guile> (defineix h (make-hash-table 10)) guile> h #<hash-table 0/31> guile> (hashq-set! h 'key1 "val1") "val1" guile> (hashq-set! h 'key2 "val2") "val2" guile> (hashq-set! h 3 "val3") "val3"
Els valors es recuperen de les taules de hash mitjançant
hashq-ref
.
guile> (hashq-ref h 3) "val3" guile> (hashq-ref h 'key2) "val2" guile>
Les claus i els valors es recuperen com una parella amb
hashq-get-handle
. Aquesta és la forma preferida, perquè
retorna #f
si no es troba la clau.
guile> (hashq-get-handle h 'key1) (key1 . "val1") guile> (hashq-get-handle h 'frob) #f guile>
[ << Tutorial de l’Scheme ] | [Top][Contents][Index] | [ Interfícies per a programadors >> ] |
[ < Llistes associatives (listas-A) ] | [ Up: Tipus de dades compostes de l’Scheme ] | [ Càlculs a l’Scheme > ] |