Loops/Foreach

From Rosetta Code
Task
Loops/Foreach
You are encouraged to solve this task according to the task description, using any language you may know.

Loop through and print each element in a collection in order. Use your language's "for each" loop if it has one, otherwise iterate through the collection in order with some other loop.

C++

C++ does not (yet) have a "for each" loop. The following is a generic loop which works with any standard container except for built-in arrays. The code snippet below assumes that the container type in question is typedef'd to container_type and the actual container object is named container. <cpp>

 for (container_type::iterator i = container.begin(); i != container.end(); ++i)
 {
   std::cout << *i << "\n";
 }

</cpp> However the idiomatic way to output a container would be <cpp>

 std::copy(container.begin(), container.end(),
           std::output_iterator<container_type::value_type>(std::cout, "\n"));

</cpp> There's also an algorithm named for_each. However, you need a function or function object to use it, e.g. <cpp> void print_element(container_type::value_type const& v) {

 std::cout << v << "\n";

}

...

 std::for_each(container.begin(), container.end(), print_element);

</cpp>

Common Lisp

(loop for i in list do (print i))

Forth

create a 3 , 2 , 1 ,
: .array ( a len -- )
  cells bounds do  i @ .  cell +loop ;     \ 3 2 1

Haskell

forM_ collect print

Java

Works with: Java version 1.5+

<java>Collection<Type> collect; ... for(Type i:collect){

  System.out.println(i);

}</java> This works for any array type as well as any type that implements the Iterable interface (including all Collections).

JavaScript

This works for any object, as well as arrays.

for (var a in o) print(o[a]);

foreach [red green blue] [print ?]

MAXScript

for i in collect do
(
    print i
)

OCaml

List of integers: <ocaml>List.iter

 (fun i -> Printf.printf "%d\n" i)
 collect_list</ocaml>

Array of integers: <ocaml>Array.iter

 (fun i -> Printf.printf "%d\n" i)
 collect_array</ocaml>

Perl

<perl>foreach $i (@collect) {

  print "$i\n";

}</perl> The keyword for can be used instead of foreach. If a variable ($i) is not given, then $_ is used.

PHP

<php>foreach ($collect as $i) {

  echo "$i\n";

}</php>

Python

<python>for i in collect:

  print i</python>

V

[1 2 3] [puts] step