Lekcja 24
Spis treści | Lekcja 23 | Lekcja 25
24. Struktury
Struktury pozwalają na przechowywanie razem pewnych logicznie powiązanych informacji. Ściślej rzecz ujmując, pozwalają na przechowywanie elementów i ich atrybutów razem. Podobne są do struktur w C czy rekordów w Pascalu, ale posiadają specjalizowane funkcje ułatwiające tworzenie i operowanie tworami tego typu.
24.1 defstruct
Instrukcja defstruct pozwala utworzenie nowej struktury i jest postaci (defstruct name field1 field2 …), gdzie name to nazwa struktury, a field1, field2, to nazwy kolejnych pól tej struktury. Po utworzeniu nowej struktury zwracana jest jej nazwa.
24.1
(defstruct rower kierownica kola rama) => rower
24.2
(make-rower) => #s(rower :kierownica nil :kola nil :rama nil) (make-rower :rama 'zielona) => #s(rower :kierownica nil :kola nil :rama zielona)
Instrukcja make-rower może pobierać jako argumenty nazwy poszczególnych pól wraz z ich wartościami, co powoduje, że przy tworzeniu wyspecyfikowane pola będą inicjowane właśnie tymi wartościami a nie nil. Instrukcje typu rower-... pozwalają na dostęp do poszczególnych pól. Jako argument pobierają obiekt będący strukturą danego typu.
24.3
(setq moj-rower (make-rower)) => #s(rower :kierownica nil :kola nil :rama nil) (rower-kola moj-rower) => nil (setf (rower-kola moj-rower) dwa) => nil (rower-kola moj-rower) => dwa
Spis treści | Lekcja 23 | Lekcja 25