Sök…


Introduktion

Ett par är en av de mest grundläggande datatyperna i schema. Det kallas också vanligtvis nackceller.

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.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow