Idiom #143 Iterate alternatively over two lists
Iterate alternatively over the elements of the lists items1 and items2. For each iteration, print the element.
Explain what happens if items1 and items2 have different size.
Iterate alternatively over the elements of the lists items1 and items2. For each iteration, print the element.
Explain what happens if items1 and items2 have different size.
for i := range min(len(items1), len(items2)) {
fmt.Println(items1[i])
fmt.Println(items2[i])
}
roundRobin(items1, items2).each!writeln;
interweave :: [a] -> [a] -> [a] -- optional signature
interweave [] ys = ys
interweave xs [] = xs
interweave (x:xs) (y:ys) = x : y : interweave xs ys
main = mapM_ print $ interweave items1 items2
const iterator1 = items1[Symbol.iterator]()
const iterator2 = items2[Symbol.iterator]()
let result1 = iterator1.next()
let result2 = iterator2.next()
while(!(result1.done && result2.done)) {
if (!result1.done) {
console.log(result1.value)
result1 = iterator1.next()
}
if (!result2.done) {
console.log(result2.value)
result2 = iterator2.next()
}
}
IntStream.range(0, Math.max(items1.size(), items2.size()))
.boxed()
.flatMap(idx -> Stream.of(
items1.size() > idx ? items1.get(idx) : null,
items2.size() > idx ? items2.get(idx) : null
))
.filter(Objects::nonNull)
.forEach(System.out::println);
# php 5.3+
print array_reduce( array_map( null, $items1, $items2 ), function($c,$d){return $c.($c?"\n":'').implode("\n", $d); }, "")."\n" ;
#php 5.6+
print implode("\n", array_merge( ...array_map( null, $items1, $items2 )))."\n";
print for zip @items1, @items2;
print(*zip_longest(items1, items2))
items1.zip(items2){|pair| puts pair}
for i := range min(len(items1), len(items2)) { fmt.Println(items1[i]) fmt.Println(items2[i]) }
for i := 0; i < len(items1) || i < len(items2); i++ { if i < len(items1) { fmt.Println(items1[i]) } if i < len(items2) { fmt.Println(items2[i]) } }
(doseq [i (interleave items1 items2)] (println i))
for(int i = 0; i < Math.Max(items1.Count, items2.Count); i++) { if (i < items1.Count) Console.WriteLine(items1[i]); if (i < items2.Count) Console.WriteLine(items2[i]); }
roundRobin(items1, items2).each!writeln;
do i=1, min(size(items1), size(items2)) print *,items1(i), items2(i) end do
mapM_ print . concat $ zipWith (\a b -> [a,b]) items1 items2
interweave :: [a] -> [a] -> [a] -- optional signature interweave [] ys = ys interweave xs [] = xs interweave (x:xs) (y:ys) = x : y : interweave xs ys main = mapM_ print $ interweave items1 items2
const iterator1 = items1[Symbol.iterator]() const iterator2 = items2[Symbol.iterator]() let result1 = iterator1.next() let result2 = iterator2.next() while(!(result1.done && result2.done)) { if (!result1.done) { console.log(result1.value) result1 = iterator1.next() } if (!result2.done) { console.log(result2.value) result2 = iterator2.next() } }
const shorter = _items1.length > _items2.length ? _items2 : _items1; const longer = _items1.length <= _items2.length ? _items2 : _items1; shorter.map((m, i) => { console.log(m); console.log(longer[i]); });
Iterator<String> iter1 = items1.iterator(); Iterator<String> iter2 = items2.iterator(); while (iter1.hasNext() || iter2.hasNext()) { if (iter1.hasNext()) { System.out.println(iter1.next()); } if (iter2.hasNext()) { System.out.println(iter2.next()); } }
int i, A, B, n = max(A = a.size(), B = b.size()); for (i = 0; i < n; ++i) { if (i < A) out.println(a.get(i)); if (i < B) out.println(b.get(i)); }
Iterator<T> A = a.iterator(), B = b.iterator(); boolean x = A.hasNext(), y = B.hasNext(); while (x || y) { if (x) out.println(A.next()); if (y) out.println(B.next()); x = A.hasNext(); y = B.hasNext(); }
IntStream.range(0, Math.max(items1.size(), items2.size())) .boxed() .flatMap(idx -> Stream.of( items1.size() > idx ? items1.get(idx) : null, items2.size() > idx ? items2.get(idx) : null )) .filter(Objects::nonNull) .forEach(System.out::println);
# php 5.3+ print array_reduce( array_map( null, $items1, $items2 ), function($c,$d){return $c.($c?"\n":'').implode("\n", $d); }, "")."\n" ; #php 5.6+ print implode("\n", array_merge( ...array_map( null, $items1, $items2 )))."\n";
for i := 0 to Min(items1.Count-1,items2.Count-1) do writeln(items1[i],', ',items2[i]);
print for zip @items1, @items2;
for pair in zip(item1, item2): print(pair)
print(*zip_longest(items1, items2))
a, b = iter(items1), iter(items2) print(*zip_longest(a, b))
a, b = len(items1), len(items2) for i in range(max(a, b)): if i < a: print(items1[i]) if i < b: print(items2[i])
items1.zip(items2){|pair| puts pair}
for pair in izip!(&items1, &items2) { println!("{}", pair.0); println!("{}", pair.1); }
(map (lambda (x) (display x) (newline)) (foldr append '() (map list items1 items2)))
items1 with: items2 do: [:item1 :item2 | Transcript showln: item1; showln: item2].
stream1 := items1 readStream. stream2 := items2 readStream. [stream1 atEnd ifFalse: [Transcript showln: stream1 next]. stream2 atEnd ifFalse: [Transcript showln: stream2 next]] doWhileFalse: [stream1 atEnd or: [stream2 atEnd]].