Clojure 如何理解这个猫的例子?

Clojure 如何理解这个猫的例子?,clojure,cat,Clojure,Cat,clojuredocs.com上有一个猫的例子 进入[]comp cat map inc[[1][2][[3][4]] 正如我所知,comp从左到右应用fn,但上面的示例似乎是从右到左应用的。如何读取它?秘密在于comp函数,它从右向左应用函数,但不适用于 因为你是在转换,comp-cat-map公司有点像 fn[xs]map inc sequence cat sequence cat xs注意,没有一个版本的cat采用coll简短的回答:comp-ing基本上从左到右运行它们 从上述文件: 传

clojuredocs.com上有一个猫的例子

进入[]comp cat map inc[[1][2][[3][4]] 正如我所知,comp从左到右应用fn,但上面的示例似乎是从右到左应用的。如何读取它?

秘密在于comp函数,它从右向左应用函数,但不适用于

因为你是在转换,comp-cat-map公司有点像 fn[xs]map inc sequence cat sequence cat xs注意,没有一个版本的cat采用coll

简短的回答:comp-ing基本上从左到右运行它们

从上述文件:

传感器与普通功能组合。传感器在决定是否调用其包裹的传感器以及调用次数之前执行其操作。建议使用现有的comp功能组合传感器:

def xf 公司 过滤奇数? 地图公司 拿5块 传感器xf是一个转换堆栈,将由一个进程应用于一系列输入元素。堆栈中的每个函数在其包装的操作之前执行。transformer的合成从右向左运行,但在本例中,在映射之前构建了一个从左向右运行的转换堆栈

作为助记符,记住comp中传感器功能的顺序与->>中的序列变换顺序相同。上述转换相当于序列转换:

->>科尔 过滤奇数? 地图公司 拿5块
我认为这不等于。cat始终是一个传感器,需要一个还原功能;然后你把它和常规的映射语法混合在一起,就像按顺序传递一样。你是对的,事实并非如此。更像是这样的。让我来解决。不,还是不行。一个很接近的方法是使用序列cat。。。现在输入concat或apply concat是为了编写apply concat。@akond非常感谢!这非常有帮助:传感器是关键。谢谢@cfrick!转换器的合成从右向左运行,但构建了从左向右运行的转换堆栈,这是关键点!