delegating the parameter value specification to the next format argument, in our case 8. (format T "~v,'0b" 8 5) Solutions of this kind are particularly a benefit if parts of the prefix parameter list shall be described by variables or function arguments instead of literals, as is the case in the following piece of code: (let ((number-of-digits 8)) (declare (type (integer 0 *) number-of-digits)) (format T "~v,'0b" number-of-digits 5)) Even more fitting in those situations involving external input, a function argument may be passed into the format directive: (defun print-as-hexadecimal (number-to-format number-of-digits) "Prints the NUMBER-TO-FORMAT in the hexadecimal system (radix 16), left-padded with zeros to at least NUMBER-OF-DIGITS." (declare (type number number-to-format)) (declare (type (integer 0 *) number-of-digits)) (format T "~v,'0x" number-of-digits number-to-format)) (print-as-hexadecimal 12 2) # as a prefix parameter tallies those format arguments not yet processed by preceding directives, doing so without actually consuming anything from this list. The utibility of such a dynamically inserted value is preponderantly restricted to use cases pertaining to conditional processing. As the argument number can only be an integer number greater than or equal to zero, its significance coincides with that of an index into the clauses of a conditional ~[ directive. The interplay of the special # prefix parameter value with the conditional selection directive ~[ is illustrated in the following example. The condition states four clauses, accessible via the indices 0, 1, 2, and 3 respectively. The number of format arguments is employed as the means for the clause index retrieval; to do so, we insert # into the conditional directive which permits the index to be a prefix parameter. # computes the tally of format arguments and suggests this number as the selection index. The arguments, not consumed by this act, are then available to and processed by the selected clause's directives. ;; Prints "none selected". (format T "~#[none selected~;one selected: ~a~;two selected: ~a and ~a~:;more selected: ~@{~a~^, ~}~]") ;; Prints "one selected: BUNNY". (format T "~#[none selected~;one selected: ~a~;two selected: ~a and ~a~:;more selected: ~@{~a~^, ~}~]" 'bunny) ;; Prints "two selected: BUNNY and PIGEON". (format T "~#[none selected~;one selected: ~a~;two selected: ~a and ~a~:;more selected: ~@{~a~^, ~}~]" 'bunny 'pigeon) ;; Prints "more selected: BUNNY, PIGEON, MOUSE". (format T "~#[none selected~;one selected: ~a~;two selected: ~a and ~a~:;more selected: ~@{~a~^, ~}~]" 'bunny 'pigeon 'mouse) Modifiers Modifiers act in the capacity of flags intending to influence the behavior of a directive.