common-lisp Uso di base e direttive semplici


Esempio

I primi due argomenti da formattare sono un flusso di output e una stringa di controllo. L'uso di base non richiede argomenti aggiuntivi. Passando a t mentre lo stream scrive in *standard-output* .

> (format t "Basic Message")
Basic Message
nil

Quell'espressione scriverà il Basic Message standard output e restituirà nil .

Passando nil mentre lo stream crea una nuova stringa e la restituisce.

> (format nil "Basic Message")
"Basic Message"

La maggior parte delle direttive string di controllo richiedono argomenti aggiuntivi. La direttiva ~a ("estetica") stamperà qualsiasi argomento come se fosse la procedura del princ . Stampa il modulo senza caratteri di escape (le parole chiave vengono stampate senza i due punti iniziali, le stringhe senza le virgolette circostanti e così via).

> (format nil "A Test: ~a" 42)
"A Test: 42"
> (format nil "Multiples: ~a ~a ~a ~a" 1 (list 2 3) "four five" :six)
"Multiples: 1 (2 3) four five SIX"
> (format nil "A Test: ~a" :test)
"A Test: TEST"
> (format nil "A Test: ~a" "Example")
"A Test: Example"

~a input opzionale a destra o a sinistra basato su input aggiuntivi.

> (format nil "A Test: ~10a" "Example")
"A Test: Example   "
> (format nil "A Test: ~10@a" "Example")
"A Test:    Example"

La direttiva ~s è come ~a , ma stampa caratteri di escape.

> (format nil "A Test: ~s" 42)
"A Test: 42"
> (format nil "Multiples: ~s ~s ~s ~s" 1 (list 2 3) "four five" :six)
"Multiples: 1 (2 3) \"four five\" :SIX"
> (format nil "A Test: ~s" :test)
"A Test: :TEST"
> (format nil "A Test: ~s" "Example")
"A Test: \"Example\""