Chapter 2.5

Extended Types

"Always listen to experts. They'll tell you what can't be done, and why. Then do it."

Robert A. Heinlein, Time Enough for Love

Besides the data types we've already seen---strings, integers, floats, complex numbers, vectors, arrays, lists, first-class functions, structs and CLOS classes---Common Lisp has a diverse set of specialized types to serve almost every need.

Many of these specialized data types have their own set of functions for working with them. While introducing each type, I will also be covering that type's specialized function interface, and various methods of type conversion.

Where the ANSI standard falls short of your needs, it provides a mature and rich type definition system. You can also, if needs must, mercilessly abuse CLOS to define your more complicated, structured types with classes---which also allows you to use generic functions and methods to provide operator overloading for them.

Exercise 2.5.1

Hash Tables

Exercise 2.5.2

More Hash Tables

Exercise 2.5.3

Even More Hash Tables

Exercise 2.5.4


Exercise 2.5.5

More Sets

Exercise 2.5.6

Even More Sets

Exercise 2.5.7

Simple Strings

Exercise 2.5.8

More Simple Strings

Exercise 2.5.9

Simple Arrays

Exercise 2.5.10

More Simple Arrays

Exercise 2.5.11

Byte Vectors

Exercise 2.5.12

More Byte Vectors

Exercise 2.5.13

Unsigned Bytes

Exercise 2.5.14

Signed Bytes

Exercise 2.5.15

Bit Vectors

Exercise 2.5.16

More Bit Vectors

Exercise 2.5.17

Defining Types

Exercise 2.5.18

Defining Types with CLOS

results matching ""

    No results matching ""