@ modifier: Expects separate format arguments instead of a list of these for the inserted portion, as one would specify in the usual manner. :@ modifier: Invalid. |- | |Modifies the case of the enclosed string. Full form: ~(expression~). No modifier: Converts all characters to lower case. : modifier: Capitalizes all words. @ modifier: Capitalizes the first word only, converts the rest to lower case. :@ modifier: Converts all characters to upper case. |- | , |Prints a singular or plural suffix depending upon the numeric format argument. Full form: ~p. No modifier: Prints nothing if the argument equals 1, otherwise prints s. : modifier: Moves back to the last consumed format argument, printing nothing if it was 1, otherwise printing s. @ modifier: Prints a y if the argument equals 1, otherwise prints ies. :@ modifier: Moves back to the last consumed format argument, printing y if it was 1, otherwise printing ies. |- | |Used in an iteration directive ~{...~} to terminate processing of the enclosed content if no further format arguments follow. Full form: ~p1,p2,p3^. The termination condition depends on the number of prefix parameters supplied: If no prefix parameter is specified, the directive ceases if zero arguments remain to process. If one prefix parameter p1 is specified, the directive ceases if p1 resolves to zero. If two prefix parameters p1 and p2 are specified, the directive ceases if p1 equals p2. If three prefix parameters p1, p2 and p3 are specified, the directive ceases if it holds: p1 ≤ p2 ≤ p3. No modifier: Operates as described. : modifier: Invalid. @ modifier: Invalid. :@ modifier: Invalid. |- | |Skips or retains line breaks and adjacent whitespaces in a multi-line control string. Full form: ~Newline. No modifier: Skips the immediately following line break and adjacent whitespaces. : modifier: Skips the immediately following line break, but retains adjacent whitespaces. @ modifier: Retains the immediately following line break, but skips adjacent whitespaces. :@ modifier: Invalid. |} Example An example of a C printf call is the following: printf("Color %s, number1 %d, number2 %05d, hex %x, float %5.2f, unsigned value %u.\n", "red", 123456, 89, 255, 3.14, 250); Using Common Lisp, this is equivalent to: (format t "Color ~A, number1 ~D, number2 ~5,'0D, hex ~X, float ~5,2F, unsigned value ~D.~%" "red" 123456 89 255 3.14 250) ;; prints: Color red, number1 123456, number2 00089, hex FF, float 3.14, unsigned value 250.