(rontolisp) docs
← 関数

rontolisp:then*

(rontolisp:then* future &rest functions)

rontolisp:then の可変長チェーン糖衣: 値を各 function に順に通し、 手で連ねたら生じる括弧の入れ子を回避します。各関数は 1 つ前の段の (必要に応じて await で平坦化された) 確定値を受け取り、future を 返す段は次段の読み取り時に平坦化されます。コールバックが 0 個の 場合は入力 future をそのまま返します (仕様上の縮退恒等関数)。

第 1 引数が future 以外の場合は type-error になります。

命名について: これは then + * (CL の慣習で 2 引数演算子の可変長 版) であり、Java の CompletableFuturethenCompose/thenApply とは違います。ここでは await が読み取り時に平坦化するので、両者の 区別は同じ形に潰れます。

バックエンドのサポート

rontolisp:then と同じ: インタプリタ、JVM、 WASM --component。Preview 1 WASM は成功パスのみ。--no-gc は コンパイル時に拒否します。