Sök…
Introduktion
Skapa ett par
Ett par kan skapas med cons . Namnet på funktionsstativet för konstruktören . I schema är allt ganska mycket baserat på par.
(cons a b)
Funktionen returnerar ett par som innehåller elementet a och b . Den första parametern i cons kallas car (Content Adress Register) och det andra argumentet är cdr (Content Decrement Register).
Åtkomst till parets bil.
Data i paret kan nås med verktygsfunktioner. För att komma åt car måste vi använda car .
(car (cons a b))
> a
Vi kan också verifiera följande jämlikhet:
(eq? a (car (cons a b)))
> #t
Gå till parets cdr
För att få åtkomst till cdr måste vi använda cdr-funktionen.
(cdr (cons ab))
b
Vi kan också verifiera följande jämlikhet:
(eq? b (cdr (cons ab)))
#t
Skapa en lista med par
Lista i schema är inget annat än en serie par som är inbäddade i varandra i cdr för en cons . Och den sista cdr i en ordentlig lista är den tomma listan '() .
För att skapa listan (1 2 3 4) skulle vi ha något liknande:
(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)
Som ni ser är en lista i schema en länkad lista gjord av par. Av den anledningen tar det nästan ingen tid att lägga till ett objekt på listans framsida, men att lägga till ett element i slutet av listan tvingar tolkaren att gå över hela listan.