Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL
Help

11. Printing Text with the format Functi... > A Crazy Formatting Trick for Creatin...

A Crazy Formatting Trick for Creating Pretty Tables of Data

Let’s look at one last format example that uses some of the control sequences you’ve already seen, as well as some new ones. This example will illustrate how the varied control sequences can be combined for complex behavior.

> (format t "|˜{˜<|˜%|˜,33:;˜2d ˜>˜}|" (loop for x below 100 collect x))
| 0  1  2  3  4  5  6  7  8  9 |
|10 11 12 13 14 15 16 17 18 19 |
|20 21 22 23 24 25 26 27 28 29 |
|30 31 32 33 34 35 36 37 38 39 |
|40 41 42 43 44 45 46 47 48 49 |
|50 51 52 53 54 55 56 57 58 59 |
|60 61 62 63 64 65 66 67 68 69 |
|70 71 72 73 74 75 76 77 78 79 |
|80 81 82 83 84 85 86 87 88 89 |
|90 91 92 93 94 95 96 97 98 99 |

To create this nicely formatted table of numbers, we first use the looping control sequences ˜{ ˜} to iterate through a list of numbers created by the loop command. Within the iteration, we place justification control sequences ˜< ˜>, which we’ve used earlier. In this case, we don’t use them to justify our text, but instead use them to divide the resulting text into pieces. This is how we break our 100 numbers into nice clean rows of 10. We place the ˜:; control sequence inside our justification control sequences ˜< ˜>, which causes text to be broken into pieces of equal length.


  

You are currently reading a PREVIEW of this book.

                                                                                                                    

Get instant access to over $1 million worth of books and videos.

  

Start a Free 10-Day Trial


  
  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint