のように、複数の値を(単純な)ベクトルに連結する関数が必要です(concatenate )
。ただし、連結とは異なり、ベクトルまたはシーケンスではない引数を処理できる必要があります。
つまり、次のように機能するはずです。
(concat #(1 2) 3) => #(1 2 3)
(concat 1 2 3) => #(1 2 3)
(concat 1 #(2 3 4)) => #(1 2 3 4)
(concat #(1 2) 2 #(3 4 5)) => #(1 2 3 4 5)
これどうやってするの?私はそれを可能にするいくつかの些細なlisp構造を忘れたと思います。
私の知る限り、連結ではそれができません。そして、マクロでそれを作る方法がよくわかりません(,@
結果のlisp形式にリストを挿入する構造がありますが、この場合、非シーケンスとシーケンスを区別する方法がよくわかりません)。