Difference between revisions of "ListCompare"
Jump to navigation
Jump to search
Ugleh Ulrik (talk | contribs) |
m (<lsl> tag to <source>) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Function | {{LSL_Function | ||
|func=ListCompare | |func=ListCompare | ||
|func_desc=Efficiently compares two lists for equality (same contents). | |func_desc=Efficiently compares two lists for equality (same contents in the same order). | ||
|return_type=integer | |return_type=integer | ||
|return_text=TRUE if the lists are equal, FALSE if not. | |return_text=TRUE if the lists are equal, FALSE if not. | ||
Line 9: | Line 9: | ||
|cat1=Examples | |cat1=Examples | ||
|cat2=Library | |cat2=Library | ||
|cat3= | |cat3=User-Defined Functions | ||
|examples=< | |examples=<source lang="lsl2">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 s = ListCompare([1, 2.0, 3], [1, 2.0, "3"]); // Returns FALSE | ||
integer t = ListCompare([], [1, 2.0, "3"]); // Returns FALSE</ | integer t = ListCompare([], [1, 2.0, "3"]); // Returns FALSE</source> | ||
}} | }} | ||
= Implementation = | = Implementation for LSO or MONO = | ||
< | <source lang="lsl2"> | ||
integer ListCompare(list a, list b) | |||
if ( | { | ||
if (a != b) return FALSE; // Note: This is comparing list lengths only | |||
return !llListFindList | // 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 | |||
} | |||
</source> |
Latest revision as of 15:18, 22 January 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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
}