Zoeken…
Invoering
Maak een paar
Een paar kan worden gemaakt met de cons . De naam van de functie staat voor constructor . In Scheme is alles vrijwel gebaseerd op paren.
(cons a b)
De functie retourneert een paar dat het element a en b . De eerste parameter van cons wordt car (Content Address Register) genoemd en het tweede argument is de cdr (Content Decrement Register).
Toegang tot de auto van het paar.
De gegevens in het paar zijn toegankelijk via hulpprogramma's. Voor toegang tot de car , moeten we het gebruik van car -functie.
(car (cons a b))
> a
We kunnen ook de volgende gelijkheid verifiëren:
(eq? a (car (cons a b)))
> #t
Toegang tot de cdr van het paar
Om toegang te krijgen tot de cdr, moeten we de cdr-functie gebruiken.
(cdr (cons ab))
b
We kunnen ook de volgende gelijkheid verifiëren:
(eq? b (cdr (cons ab)))
#t
Maak een lijst met paren
Lijst in schema is niets anders dan een reeks paren die in elkaar zijn genest in de cdr van een cons . En de laatste cdr van een goede lijst is de lege lijst '() .
Om de lijst (1 2 3 4) , hebben we zoiets als dit:
(cons 4 '())
> (4)
(cons 3 (cons 4 '()))
> (3 4)
(cons 2 (cons 3 (cons 4 '())))
> (2 3 4)
(cons 1 (cons 2 (cons 3 (cons 4 '()))))
> (1 2 3 4)
Zoals u kunt zien, is een lijst in schema een gekoppelde lijst die uit paren bestaat. Om die reden kost het toevoegen van een object aan de voorkant van de lijst bijna geen tijd, maar het toevoegen van een element aan het einde van de lijst dwingt de tolk over de hele lijst te lopen.