是否有现成的 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、 ... 来引用以前返回的值。
这就是想法,确切的语法并不那么重要。
我知道这并不难写,但似乎很有用,必须已经写好了。