Macros Clojure式线程宏?

Macros Clojure式线程宏?,macros,julia,Macros,Julia,如何实现,或者是否存在线程优先(->)和线程最后(->)的实现 例如: # equivalent of sum(1, 2) @thread-first 1 sum(2) # equivalent of any(map(isequal(1), [1,2,3])) @thread-last [1,2,3] map(isequal(1)) any Julia有管道,但通常|>运算符只允许一个参数函数。在Clojure中,thread first和thread last参数将参数插入函数中多个参数的

如何实现,或者是否存在线程优先(
->
)和线程最后(
->
)的实现

例如:

# equivalent of sum(1, 2)
@thread-first 1 sum(2)

# equivalent of any(map(isequal(1), [1,2,3]))
@thread-last [1,2,3] map(isequal(1)) any

Julia有管道,但通常|>运算符只允许一个参数函数。在Clojure中,thread first和thread last参数将参数插入函数中多个参数的开头或结尾

在Lazy.jl中确实有@>和@>>宏:

它们先执行线程,后执行线程,但语法不同。请参阅Lazy.jl文档。最后一个线程的示例:

 @>> 1:10 collect filter(isodd) square.() reduce(+)
 165
线程优先的示例:

@> 6 div(2)
3