Difference between revisions of "ListXnotY"
Jump to navigation
Jump to search
(You should initialize the variable when you declare it, as the compiler will implicitly initialize it. Implicit initialization isn't as readable as explicit, which is what examples should be: readable) |
|||
Line 13: | Line 13: | ||
integer n = llGetListLength(lx); | integer n = llGetListLength(lx); | ||
for (; i < n; i++) | for (; i < n; i++) | ||
if (llListFindList(ly,llList2List(lx,i,i)) == -1) | if (llListFindList(ly,llList2List(lx,i,i)) == -1) | ||
lz += llList2List(lx,i,i); | |||
return lz; | return lz; | ||
} | } |
Revision as of 09:53, 12 January 2010
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Function: list ListXnotY(list lx, list ly);
Show what x list has that y list is missing.
See also: Lists
<lsl> list ListXnotY(list lx, list ly) {// return elements in X list that are not in Y list
list lz = []; integer i = 0; integer n = llGetListLength(lx); for (; i < n; i++) if (llListFindList(ly,llList2List(lx,i,i)) == -1) lz += llList2List(lx,i,i); return lz;
}
</lsl>
Example:
<lsl> list l1 = ["a","b","c","d"]; list l2 = ["a","1","b","2","c","3"];
default{
state_entry() { llSay(0, "X list has this in it, but Y list doesn't: " + llList2CSV(ListXnotY(l1,l2)) ); //will say: d }
} </lsl>
Posted with the kind permission of Very Keynes, who originated this script June 2007 in the SL scripters forum http://forums.secondlife.com/showthread.php?t=194138