« Home » « Learn » « Download » « Github » Cello High Level C

Methods

cmp

int cmp(var self, var obj);

The return value of cmp is < 0 if self is less than obj, > 0 if self is greater than obj and 0 if they are equal.

eq

bool eq(var self, var obj);

Returns true if the object self is equal to the object obj.

neq

bool neq(var self, var obj);

Returns false if the object self is equal to the object obj.

gt

bool gt(var self, var obj);

Returns true if the object self is greater than the object obj.

lt

bool lt(var self, var obj);

Returns false if the object self is less than the object obj.

ge

bool ge(var self, var obj);

Returns false if the object self is greater than or equal to the object obj.

le

bool le(var self, var obj);

Returns false if the object self is less than or equal to the object obj.

Examples

Usage 1

show(\$I( eq(\$I(1), \$I( 1)))); /* 1 */
show(\$I(neq(\$I(2), \$I(20)))); /* 1 */
show(\$I(neq(\$S("Hello"), \$S("Hello")))); /* 0 */
show(\$I( eq(\$S("Hello"), \$S("There")))); /* 0 */

var a = \$I(1); var b = \$I(1);

show(\$I(eq(a, b))); /* 1 */
show(\$I(a is b));   /* 0 */
show(\$I(a isnt b)); /* 1 */

Usage 2

show(\$I(gt(\$I(15), \$I(3 )))); /* 1 */
show(\$I(lt(\$I(70), \$I(81)))); /* 1 */
show(\$I(lt(\$I(71), \$I(71)))); /* 0 */
show(\$I(ge(\$I(78), \$I(71)))); /* 1 */
show(\$I(gt(\$I(32), \$I(32)))); /* 0 */
show(\$I(le(\$I(21), \$I(32)))); /* 1 */

show(\$I(cmp(\$I(20), \$I(20)))); /*  0 */
show(\$I(cmp(\$I(21), \$I(20)))); /*  1 */
show(\$I(cmp(\$I(20), \$I(21)))); /* -1 */

Cmp

Comparison

The Cmp class is used to define comparison between two object values. This class is important as it is used by many data structures to test equality or ordering of objects.

By default, if passed two objects of the same type, the Cmp class will simply compare the raw memory of both objects, using the Size class.

To implement this class a cmp function must be provided which returns < 0 if the first object is less than the second, > 0 if the first object is greater than the second, and 0 if they are equal.

For objects that manage their own data this class may need to be overridden to ensure that objects of the same value are still treated as equal. E.G. for string types.

This class to used to test for value equality between objects, I.E. if they represent the same thing. For object equality the is keyword can be used, which will return true only if two variables are pointing to the same object in memory.

Definition

struct Cmp {
int (*cmp)(var, var);
};

Derivers

• Box |     Unique Pointer
• Exception |     Exception Object
• File |     Operating System File
• Filter |     Filtered Iterable
• Function |     Function Object
• GC |     Garbage Collector
• Map |     Apply Function to Iterable
• Mutex |     Mutual Exclusion Lock
• Process |     Operating System Process
• Ref |     Shared Pointer
• Zip |     Multiple Iterator

Implementers

• Array |     Sequential Container
• Float |     Floating Point Object
• Int |     Integer Object