Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![feature(slice_patterns)]
- fn f<T>(_: &T, _: &T) -> T {
- unimplemented!();
- }
- use itertools::Itertools;
- fn test<T>(vec: Vec<T>) -> Vec<Vec<T>>
- where
- T: Clone,
- {
- let n = vec.len();
- let mut vec: Vec<_> = vec.into_iter().combinations(n).collect();
- for (i, it) in vec.iter_mut().enumerate() {
- let (left, rigth) = it.split_at_mut(i);
- if let [y, rigth..] = &mut rigth[..] {
- for x in left.iter_mut().chain(rigth.iter_mut()) {
- *x = f(x, &y);
- }
- }
- }
- vec
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement