Special Operator MULTIPLE-VALUE-CALL
multiple-value-call
function-form form* => result*
function-form - フォーム。評価されfunctionが得られます。
function - 関数指定子。function-formの評価によって得られます。
form - フォーム
result - functionの返却値
functionを、多値のグループを収集したオブジェクトをまとめた リストと共に実行します。
multiple-value-call
は最初にfunction-formを評価して functionを取得し、そのあと各formを実行します。 各formの全ての多値を一緒にまとめて(それぞれちょうどひとつずつではなく)、 functionの引数として与えます。
multiple-value-call #'list 1 '/ (values 2 3) '/ (values) '/ (floor 2.5))
(=> (1 / 2 3 / / 2 0.5)
+ (floor 5 3) (floor 19 4)) == (+ 1 4)
(=> 5
multiple-value-call #'+ (floor 5 3) (floor 19 4)) == (+ 1 2 4 3)
(=> 10
なし。
なし。
multiple-value-list
, multiple-value-bind
なし。