调用(eduction ..)
会在REPL中返回类似于序列的内容(例如“(1 2 3)
”之类的内容)。但是,如果您检查此返回值是否为序列(通过seq?
),则会获得false
。
问题: Eduction究竟是什么? 仅仅是一个将逐个送入减少函数的值列表吗?
答案 0 :(得分:5)
要捕获将传感器应用于coll的过程,请使用eduction功能。它需要任意数量的xforms和最终的coll,并将传感器的可简化/可迭代应用程序返回到coll中的项目。每次调用reduce / iterator时都会执行这些应用程序。
因此,它是将传感器应用于集合的抽象,该集合产生可还原/可迭代的东西。您可能想知道其中的区别:
因为他们将在每次缩减/迭代时使用提供的集合应用传感器,它们与seq的语义不同。