Chapter 1.18

Format Strings

"Logic is a feeble reed, friend. 'Logic' proved that airplanes can't fly and that H-bombs won't work and that stones don't fall out of the sky. Logic is a way of saying that anything which didn't happen yesterday won't happen tomorrow."

Robert A. Heinlein, Glory Road

You already got a small taste of format in Chapter 1.2, but we barely scratched the surface of what it can do. Like the Loop macro, format has many detractors in the Lisp community---but it's one of those tools that is so ridiculously powerful and concise, it's worth getting to know and using, no matter how scary it might look at first.

Almost everything you can do in Common Lisp, you can also do inside a format string. It gives you so much programmatic control over your application's textual output, that it could rightly be considered its own programming language for manipulating strings---but you get it for free as part of Lisp. The syntax of format strings is, in-fact, a full Domain-Specific Language.

But don't let that scare you---you already know the basics of writing format strings, and now you know enough about Lisp to make use of format's most powerful features.

This chapter will contain exercises on:

  • The FORMAT Function
  • Conditionals
  • Iteration
  • Numbers
  • Unprintable Objects
  • Etc.

Exercise 1.18.1

The FORMAT Function

Exercise 1.18.2

The Stream Parameter

Exercise 1.18.3

Format Strings

Exercise 1.18.4

Format Directives

Exercise 1.18.5

Consuming and Non-Consuming Directives

Exercise 1.18.6

Arguments to Format Strings

Exercise 1.18.7

Numbers

Exercise 1.18.8

Printing

Exercise 1.18.9

Case Conversion

Exercise 1.18.10

Layout

Exercise 1.18.11

Conditionals

Exercise 1.18.12

Iteration

Exercise 1.18.13

Control Flow

Exercise 1.18.14

Pretty-Printing

Exercise 1.18.15

Unprintable Objects

Exercise 1.18.16

Recursive Processing

Exercise 1.18.17

Function Calls

results matching ""

    No results matching ""