:inline 特性允许你将**可变数量**的元素**拼接**到 list 或 vector
自定义类型的中间。使用方法是:在包含于 list 或 vector 内部的
某个类型规范中添加 :inline t。
通常,list 或 vector 类型规范中的每一项都描述**单个**元素类型。
但当某一项包含 :inline t 时,它所匹配的值会**直接合并**到外层序列中。
例如,如果该项匹配一个包含三个元素的列表,这三个元素会直接成为整个序列的三个元素。
这类似于反引用结构中的 ‘,@’(see 反引号)。
例如,要指定一个列表,其第一个元素必须是 baz,
剩余参数可以是零个或多个 foo 和 bar,可使用如下自定义类型:
(list (const baz) (set :inline t (const foo) (const bar)))
它可以匹配如 (baz)、(baz foo)、(baz bar)
和 (baz foo bar) 这样的值。
当元素类型为 choice 时,:inline 不应写在 choice 本身,
而应写在 choice 的(部分)备选选项中。
例如,要匹配一个以文件名开头,后面紧跟符号 t 或两个字符串的列表,可使用:
(list file
(choice (const t)
(list :inline t string string)))
如果用户选择 choice 中的第一个备选项,则整个列表有两个元素,第二个元素是 t。
如果用户选择第二个备选项,则整个列表有三个元素,第二个和第三个必须是字符串。
界面组件可以通过 :match-inline 指定谓词,
用于判断一个内联值是否匹配该组件。