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

Sets



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 ""