Clojure で 2 つ以上の s 式を返すマクロを作成する (または既存のマクロを使用する) 方法はありますか?
例。最初の 10 個の正方形を作成しようとしているとします。
(map * (range 10) (range 10))
ここで、repeatを使用して、後でパワー (今のところ 2) をパラメーターとして提供できるようにします。
(map * (repeat 2 (range 10)))
ただし、 repeatは 2 つの範囲ではなく 2 つの範囲を持つ単一の s 式を返すため、上記は機能しません。
「最初の 10 マスを返す」関数の代替実装を提供しないでください。このような状況に対処するための慣用的な方法や、一般的に適用可能な回避策に興味があります。
以下の爆発を実装する方法を探していると思います。
(explode '( a b c )) ;; evals to a b c
(map * (explode (repeat 2 (range 10)))