## A.20 Predefined type predicates

### R5RS primary predicates

Type predicate | Description
--- | ---
`boolean?` | boolean
`char?` | character
`number?` | number
`pair?` | pair
`port?` | port
`procedure?` | procedure
`string?` | string
`symbol?` | symbol
`vector?` | vector

### R5RS secondary predicates

Type predicate | Description
--- | ---
`char-alphabetic?` | alphabetic character
`char-lower-case?` | lower-case character
`char-numeric?` | numeric character
`char-upper-case?` | upper-case character
`char-whitespace?` | whitespace character
`complex?` | complex number
`eof-object?` | end-of-file object
`even?` | even number
`exact?` | exact number
`inexact?` | inexact number
`input-port?` | input port
`integer?` | integer
`list?` | list (use `cheap-list?` for faster processing)
`negative?` | negative number
`null?` | null
`odd?` | odd number
`output-port?` | output port
`positive?` | positive number
`rational?` | rational number
`real?` | real number
`zero?` | zero

### Guile predicates

Type predicate | Description
--- | ---
`hash-table?` | hash table

### LilyPond scheme predicates

Type predicate | Description
--- | ---
`boolean-or-symbol?` | boolean or symbol
`cheap-list?` | list (use this instead of `list?` for faster processing)
`color?` | color
`fraction?` | fraction, as pair
`grob-list?` | list of grobs
`index?` | non-negative integer
`markup?` | markup
`markup-command-list?` | markup command list
`markup-list?` | markup list
`moment-pair?` | pair of moment objects
`number-list?` | number list
`number-or-grob?` | number or grob
`number-or-markup?` | number or markup
`number-or-pair?` | number or pair
`number-or-string?` | number or string
`number-pair?` | pair of numbers
`number-pair-list?` | list of number pairs
`rhythmic-location?` | rhythmic location
`scheme?` | any type
`string-or-music?` | string or music
`string-or-pair?` | string or pair
`string-or-symbol?` | string or symbol
`symbol-list?` | symbol list
`symbol-list-or-music?` | symbol list or music
`symbol-list-or-symbol?` | symbol list or symbol
`void?` | void

### LilyPond exported predicates

Type predicate | Description
--- | ---
`ly:book?` | book
`ly:box?` | box
`ly:context?` | context
`ly:context-def?` | context definition
`ly:context-mod?` | context modification
`ly:dimension?` | dimension, in staff space
`ly:dir?` | direction
`ly:dispatcher?` | dispatcher
`ly:duration?` | duration
`ly:event?` | post event
`ly:font-metric?` | font metric
`ly:grob?` | graphical (layout) object
`ly:grob-array?` | array of grobs
`ly:input-location?` | input location
`ly:item?` | item
`ly:iterator?` | iterator
`ly:lily-lexer?` | lily-lexer
`ly:lily-parser?` | lily-parser
`ly:listener?` | listener
`ly:moment?` | moment
`ly:music?` | music
`ly:music-function?` | music function
`ly:music-list?` | list of music objects
`ly:music-output?` | music output
`ly:otf-font?` | OpenType font
`ly:output-def?` | output definition
`ly:page-marker?` | page marker
`ly:pango-font?` | pango font
`ly:paper-book?` | paper book
`ly:paper-system?` | paper-system Prob
`ly:pitch?` | pitch
`ly:prob?` | property object
`ly:score?` | score
`ly:simple-closure?` | simple closure
`ly:skyline?` | skyline
`ly:skyline-pair?` | pair of skylines
`ly:source-file?` | source file
`ly:spanner?` | spanner
`ly:spring?` | spring
`ly:stencil?` | stencil
`ly:stream-event?` | stream event
`ly:translator?` | translator
`ly:translator-group?` | translator group
`ly:unpure-pure-container?` | unpure/pure container

其他语言：deutsch, español, français, italiano, 日本語。
About automatic language selection.

#### LilyPond — Notation Reference v2.18.2 (稳定分支).