関数の連鎖 (パイピング) を可能にする既製の Lisp マクロはありますか? 見つかりませんでした。この例で私が何を意味するかを説明しようとします。
次のように多くの未使用の中間変数で let* を使用する代わりに:
(let*
((var1 (f1 x y))
(var2 (f2 x var1))
(var3 (f1 var2 z)))
var3)
以下のように書いていただきたいです。
(->
(f1 x y)
(f2 x _)
(f1 _ z))
ここで、明らかに_は前の式からの戻り値になります。プラスは、_1、_2、...を使用して以前に返された値を参照できる場合です。
これはアイデアであり、正確な構文はそれほど重要ではありません。
これを書くのはそれほど難しいことではありませんが、とても便利なので、すでに書かなければなりません。