Llistes

Una estructura de dades molt comuna a l’Scheme és la llista. Formalment, una llista ‘ben feta’ es defineix com la llista buida, representada com a '() i amb longitud zero, o bé com una parella el cdr de la qual és al seu cop una llista més curta.

Hi ha moltes formes de crear llistes. Potser la més comuna és amb el procediment list:

guile> (list 1 2 3 "abc" 17.5)
(1 2 3 "abc" 17.5)

La representació d’una llista com a elements individuals separats per espais i envoltada entre parèntesis és realment una forma compacta de les parelles amb punt que constitueixen la llista, on el punt i immediatament un parèntesis d’obertura se suprimeixen junt al parèntesis de tancament corresponent. Sensa aquesta compactació, la sortida hauria estat

(1 . (2 . (3 . ("abc" . (17.5 . ())))))

De la mateixa manera que com la sortida, una llista pot escriure’s (després d’haver afegit un apòstrof per evitar la seva interpretació com una crida de funció) com una llista literal envoltant els seus elements entre parèntesis:

guile> '(17 23 "pep" "pepet" "pepepet")
(17 23 "pep" "pepet" "pepepet")

Les llistes són una part fonamental de l’Scheme. De fet, l’Scheme es considera un dialecte del Lisp, on ‘lisp’ és una abreviatura de ‘List Processing’ (procés de llistes). Totes les expresssions de l’Scheme són llistes.


Extender LilyPond v2.25.27 (development-branch).