Listas

Una estructura de datos muy común en Scheme es la lista. Formalmente, una lista ‘bien hecha’ se define como la lista vacía, representada como '() y con longitud cero, o bien como una pareja cuyo cdr es a su vez una lista más corta.

Existen muchas formas de crear listas. Quizá la más común es con el procedimiento list:

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

La representación de una lista como elementos individuales separados por espacios y encerrada entre paréntesis es realmente una forma compacta de las parejas con punto que constituyen la lista, donde el punto e inmediatamente un paréntesis de apertura se suprimen junto al paréntesis de cierre correspondiente. Sin esta compactación, la salida habría sido

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

De igual forma que con la salida, una lista puede escribirse (después de haber añadido un apóstrofo para evitar su interpretación como una llamada de función) como una lista literal encerrando sus elementos entre paréntesis:

guile> '(17 23 "fulano" "mengano" "zutano")
(17 23 "fulano" "mengano" "zutano")

Las listas son una parte fundamental de Scheme. De hecho, Scheme se considera un dialecto de Lisp, donde ‘lisp’ es una abreviatura de ‘List Processing’ (proceso de listas). Todas las expresiones de Scheme son listas.


Extender LilyPond v2.25.20 (rama de desarrollo).