2017-12-26 18 views
4

복제하려는 슬라이스가 있습니다. 예를 들어 xs = [1, 2, 3] 인 경우 4 번 복제해야하므로 ys = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]으로 끝납니다. 이 유사하게 녹에녹에서 슬라이스를 복제하는 방법은 무엇입니까?

ys = take (4 * length xs) $ cycle xs 

을 수행 할 수 있습니다 방법 :

하스켈에서

, 나는 같은 것을 할 것인가?

답변

4

iter으로 반복기를 작성한 후 cycle으로 끝없이 반복하는 반복자를 작성한 다음 take으로 4 사이클로 제한하십시오.

fn main() { 
    let xs = [5,7,13]; 
    let ys = xs.iter() 
       .cycle() 
       .take(xs.len() * 4); 

    for y in ys { 
     println!("{}", y); 
    } 
}