PRINC$.html -- ACL2 Version 6.3

### PRINC$

print an atom

    Major Section:  ACL2-BUILT-INS

Use `princ$` to do basic printing of atoms (i.e., other than `cons` pairs). In particular, `princ$` prints a string without the surrounding double-quotes and without escaping double-quote characters within the string. Note that `princ$` is sensitive to the print-base, print-radix, and print-case; see set-print-base, see set-print-radix, and see set-print-case. `Princ$` returns `state`.

    Examples:
    ACL2 !>(princ$ "Howdy ho" (standard-co state) state)
    Howdy ho<state>
    ACL2 !>(pprogn (princ$ "Howdy ho" (standard-co state) state)
                   (newline (standard-co state) state))
    Howdy ho
    <state>
    ACL2 !>(princ$ "ab\"cd" *standard-co* state)
    ab"cd<state>
    ACL2 !>
    ACL2 !>(princ$ 17 *standard-co* state)
    17<state>
    ACL2 !>(set-print-base 16 state)
    <state>
    ACL2 !>(princ$ 17 *standard-co* state)
    11<state>
    ACL2 !>(set-print-radix t state)
    <state>
    ACL2 !>(princ$ 17 *standard-co* state)
    #x11<state>
    ACL2 !>(princ$ 'xyz *standard-co* state)
    XYZ<state>
    ACL2 !>(set-print-case :downcase state)
    <state>
    ACL2 !>(princ$ 'xyz *standard-co* state)
    xyz<state>
    ACL2 !>

The guard for `(princ$ x channel state)` is essentially as follows; see io for an explanation of guards of certain built-in functions that take state, such as `princ$`.

    (and (or (acl2-numberp x)
             (characterp x)
             (stringp x)
             (symbolp x))
         (state-p1 state-state)
         (symbolp channel)
         (open-output-channel-p1 channel :character state-state))

See fmt for more sophisticated printing routines, and see IO for general information about input and output.