The syntax for it is
Why are these two things the same? To answer this, we need to look at what list actually does.
+---+---+ +---+---+ +---+---+ +---+---+ +---+---+ | | -|-->| | -|-->| | -|-->| | --->| | / | +_|_+___+ +_|_+___+ +_|_+___+ +_|_+___+ +_|_+___+ | | | | | \ / \ / \ / \ / \ / . . . . . "Alice" "Bob" "Carol" "Daniel" "Edith"
This is a linked list. A linked list is a bunch of pairs. The car of each pair is a pointer that points to (the memory location of) some object, in this case a string, but it could be pointing to a procedure or a number or anything at all. The cdr of each pair is a pointer that points to the (memory location of the) car of the next item in a list. You don't have to know what the memory location is; that's figured out for you internally. The cdr of the item in the list links to the null list,
Scheme, and lisps in general provide a lot of abbreviations for working with lists. We'll look at some of them today.
"Alice"
("Bob" "Carol" "Daniel" "Edith")
"Bob"
("Carol" "Daniel" "Edith")
"Carol"
And so on, four levels deep. If we had a multdimensional list like ((1 2) (3 4) (5)) then you might need to talk about the caar to get the car of the car or I think cadadr would get the 4 out of the list.
In practice you should be able to use simple recursion to only have to work with the car and the cdr.
If you want to work with linked lists then lisps are pretty good at that. If you really want an array then you might prefer to work in a language where your arrays don't have to be disguised linked lists. Things that are linked lists in real life: Trains, chains, strings of holiday lights, conga lines.
Things that are not linked lists in real life: cats, doorbells, pizza.