有没有 R 的 mapply() 的 Rust 等价物?



R的mapply()的惯用Rust方法是什么?Mapply()接受一个函数和可迭代对象,并以每个可迭代对象的第一个元素作为参数,第二个元素作为参数,以此类推。

我目前正在使用未来库中的R中的future_mapply()函数来并行执行,但我发现它太慢了。

任何帮助都是感激的。

没有直接的等价,因为Rust不处理可变函数或对不同长度的元组进行抽象(这里最好忽略HLists)。如果迭代器的数量是固定的,则可以使用it1.zip(it2).zip(it3).map(|((e1, e2), e3)| f(e1, e2, e3))itertools::izip!

如果你所有的迭代器都有相同的类型(即可以放入Vec),并且要应用的函数可以接受作为Vec的元素,你可以做一些像

std::iter::from_fn(move || {
iter_vec // the vector with your input iterators
.iter_mut()
.map(Iterator::next)
.collect::<Option<Vec<_>>>()
}).map(f)

游乐场

我想你应该把你的问题多描述一点,这样你的问题才能得到正确的回答。

相关内容

  • 没有找到相关文章

最新更新