Enumerations

From Rosetta Code
Revision as of 17:02, 26 February 2007 by MikeMol (talk | contribs) (→‎[[VB.NET]]: The correct language name is Visual Basic .NET)
Task
Enumerations
You are encouraged to solve this task according to the task description, using any language you may know.

Create an enumeration of types with and without values.

Ada

Ada enumeration types have three distinct attributes, the enumeration literal, the enumeration position, and the representation value. The position value is implied from the order of specification of the enumeration literals in the type declaration. The position values provide the ordering for the enumeration values. In the example below apple is less than banana which is less than cherry due to their positions, not due to their enumeration literal. There is no necessary relationship between the enumeration position and the enumeration representation.

type Fruit is (apple, banana, cherry); - No specification of the representation value;
for Fruit use (apple => 1, banana => 2, cherry => 3); - specification of the representation values

Ada enumeration types are non-numeric discrete types. They can be used to index arrays, but there are no arithmetic operators for enumeration types. Characters are implemented as an enumeration type in Ada.

BASIC

Interpeter: QuickBasic 4.5, PB 7.1

 REM Impossible. Can only be faked with arrays of strings.
 OPTION BASE 1
 DIM SHARED fruitsName$(1 to 3)
 DIM SHARED fruitsVal%( 1 to 3)
 fruitsName$[1] = "apple"
 fruitsName$[2] = "banana"
 fruitsName$[3] = "cherry"
 fruitsVal%[1] = 1
 fruitsVal%[2] = 2
 fruitsVal%[3] = 3
 REM OR GLOBAL CONSTANTS
 DIM SHARED apple%, banana%, cherry%
 apple%  = 1
 banana% = 2
 cherry% = 3

C

Compiler: GCC, MSVC, BCC, Watcom

Libraries: Standard

 enum fruits { apple, banana, cherry };
 enum fruits { apple = 0, banana = 1, cherry = 2 };

C++

Compiler: GCC, Visual C++, BCC, Watcom

 enum fruits { apple, banana, cherry };
 enum fruits { apple = 0, banana = 1, cherry = 2 };

C#

 enum fruits { apple, banana, cherry }
 enum fruits { apple = 0, banana = 1, cherry = 2 }
 enum fruits : int { apple = 0, banana = 1, cherry = 2 }

D

Compiler: DMD,GDC

Forth

Fortran

Java

Java 1.5 only

 enum fruits { apple, banana, cherry }
 enum fruits
 {
   apple(0), banana(1), cherry(2)
   private final int value;
   fruits(int value) { this.value = value; }
   public int value() { return value; }
 }

JavaScript

 var fruits { apple, banana, cherry };
 var fruits { apple : 0, banana : 1, cherry : 2 };

JSON

 fruits { apple, banana, cherry };
 fruits { apple : 0, banana : 1, cherry : 2 };

JScript.NET

 enum fruits { apple, banana, cherry }
 enum fruits { apple = 0, banana = 1, cherry = 2 }

Perl

Interpeter: Perl

 # Using an array
 my @fruits = qw{ apple, banana, cherry };
 # Using a hash
 my %fruits = ( apple => 0, banana => 1, cherry => 2 );

PHP

 // Using an array/hash
 $fruits = array( "apple", "banana", "cherry" );
 $fruits = array( "apple" => 0, "banana" => 1, "cherry" => 2 );

Tcl

Isn't this just a subset of associative array use?

array set arr {apple 1 orange 2 banana 3}
puts $arr(apple)

==> prints "1"

Visual Basic .NET

 ' Is this valid?!
 Enum fruits
 apple
 banana
 cherry
 End Enum
 ' This is correct
 Enum fruits
 apple = 0
 banana = 1
 cherry = 2
 End Enum