Skip to main content

Value LessThanOrEqual



Less than or equal operator on values.


Exp₁ <= Exp₂


Exp₁Exp₂Exp₁ <= Exp₂


By brute force, a total less than operator between two values V₁ and V₂ of arbitrary types T₁ and T₂ is defined:

  • If the types T₁ and T₂ can be compared then V₁ less than V₂ is used.

  • Otherwise values are ordered according their type name, for instance, int is smaller than list, and map is smaller than rel.

Less than or equal yields true if the value of Exp₁ is strictly less than (according to the ordering defined above) the value of Exp₂ or if both values are equal, and false otherwise.


Introduce two variables X, Y and Z and force them to be of type value:

rascal>value X = "abc";
value: "abc"
rascal>value Y = "def";
value: "def"
rascal>value Z = 3.14;
value: 3.14

Now compare X and Y:

rascal>X <= Y;
bool: true

and X and Z:

rascal>X <= Z;
bool: false