<ol class="breadcrumb">
  <li><a href="/">Home</a></li>
  <li><a href="/book/">Book</a></li>
  <li><a href="/book/2-0-0-overview/">Part Two: The Suffusion of Blue</a></li>
  <li class="active">Extended Types</li>
</ol>

## Chapter 2.5

# Extended Types

> "Always listen to experts. They'll tell you what can't be done, and why. Then do it."
> <footer>Robert A. Heinlein, <em>Time Enough for Love</em></footer>

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

```lisp

```

## Exercise 2.5.2

**More Hash Tables**

```lisp

```

## Exercise 2.5.3

**Even More Hash Tables**

```lisp

```

## Exercise 2.5.4

**Sets**

```lisp

```

## Exercise 2.5.5

**More Sets**

```lisp

```

## Exercise 2.5.6

**Even More Sets**

```lisp

```

## Exercise 2.5.7

**Simple Strings**

```lisp

```

## Exercise 2.5.8

**More Simple Strings**

```lisp

```

## Exercise 2.5.9

**Simple Arrays**

```lisp

```

## Exercise 2.5.10

**More Simple Arrays**

```lisp

```

## Exercise 2.5.11

**Byte Vectors**

```lisp

```

## Exercise 2.5.12

**More Byte Vectors**

```lisp

```

## Exercise 2.5.13

**Unsigned Bytes**

```lisp

```

## Exercise 2.5.14

**Signed Bytes**

```lisp

```

## Exercise 2.5.15

**Bit Vectors**

```lisp

```

## Exercise 2.5.16

**More Bit Vectors**

```lisp

```

## Exercise 2.5.17

**Defining Types**

```lisp

```

## Exercise 2.5.18

**Defining Types with CLOS**

```lisp

```

<ul class="pager">
  <li class="previous"><a href="/book/2-04-0-data-persistence/">&laquo; Previous</a></li>
  <li><a href="/book/">Table of Contents</a></li>
  <li class="next"><a href="/book/2-06-0-threads-memos-parallel/">Next &raquo;</a><li>
</ul>
