LilyPond Notation Reference: A.17 Predefined type predicates

## A.17 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
`grob-list?` | list of grobs
`list-or-symbol?` | list or symbol
`markup?` | markup
`markup-command-list?` | markup command list
`markup-list?` | markup list
`moment-pair?` | pair of moment objects
`number-or-grob?` | number or grob
`number-or-pair?` | number or pair
`number-or-string?` | number or string
`number-pair?` | pair of numbers
`rhythmic-location?` | rhythmic location
`scheme?` | any type
`string-or-pair?` | string or pair
`string-or-symbol?` | string or symbol

### LilyPond exported predicates

Type predicate | Description
--- | ---
`ly:box?` | box
`ly:context?` | context
`ly:dimension?` | dimension, in staff space
`ly:dir?` | direction
`ly:dispatcher?` | dispatcher
`ly:duration?` | duration
`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:stencil?` | stencil
`ly:stream-event?` | stream event
`ly:translator?` | translator
`ly:translator-group?` | translator group

其它语言：deutsch, español, français, 日本語。

#### LilyPond — Notation Reference