Foreach features - vilinski/nemerle GitHub Wiki

Foreach Features

  • Category: For and While Loops

  • Description: Features of foreach macro

 using System; 
 using System.Console; 
 using Nemerle;

public module Program 
{

    variant Color
    {
		| Red
		| Green
		| Blue
		| Specific {r : int; g : int; b : int;}
    }

    public Main() : void
    {
	    def color = [Color.Red(), Color.Specific(70, 128, 100), Color.Blue(), Color.Green(), Color.Specific(0, 0, 0), Color.Specific(50, 20, 0)];

		foreach (i in color)
		{
			| Red      => WriteLine("Red color")
			| Green    => WriteLine("Green color")
			| Blue     => WriteLine("Blue color")
			| Specific(r, g, b) => WriteLine($"Specific color ($r, $g, $b)")
		}

		foreach (Color.Red in color)
		{
			WriteLine("Red color")
		}    

		foreach (Color.Specific(255, g, b) in color)
		{
			WriteLine($"Specific color (255, $g, $b) ")
		}    

		foreach (Color.Specific(0, 0, 0) in color)
		{
			WriteLine("Black color")
		}    

		foreach (i is Color.Specific when i.g > 10 && i.r < 100 && i.b == 0 in color)
		{
			WriteLine("Near vinous color")
		}    
    }

} 
  • Execution result:
Red color 
Specific color (70, 128, 100) 
Blue color 
Green color
Specific color (0, 0, 0) 
Specific color (50, 20, 0) 
Red color 
Black color 
Near vinous color 

[Copyright ©](Terms of use, legal notice)