listCompare

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Summary

Function: integer ListCompare( list a, list b );

Efficiently compares two lists for equality (same contents in the same order).
Returns an integer TRUE if the lists are equal, FALSE if not.

• list a The first list to compare.
• list b The second list to compare.

Examples

integer r = ListCompare([1, 2.0, "3"], [1, 2.0, "3"]); // Returns TRUE
integer s = ListCompare([1, 2.0, 3], [1, 2.0, "3"]);   // Returns FALSE
integer t = ListCompare([], [1, 2.0, "3"]);            // Returns FALSE

Implementation for LSO or MONO

integer ListCompare(list a, list b) 
{
    if (a != b)        return FALSE;    // Note: This is comparing list lengths only

    // The next line is only needed if compiling with LSO
    if (a == [])       return TRUE;     // both lists are empty (as both lists are the same length)

    return !llListFindList(a, b);  
    // As both lists are the same length, llListFindList() can only return 0 or -1 
    // Which we return as TRUE or FALSE respectively    
}