ListXorY

From Second Life Wiki
Revision as of 15:26, 22 January 2015 by ObviousAltIsObvious Resident (talk | contribs) (<lsl> tag to <source>)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.

Function: list ListXorY(list lx, list ly);

Join two lists to make one new combined list, while also eliminating any resulting duplicates in the new list.

See also: Lists

list ListXorY(list lx, list ly){ // add the lists eliminating duplicates
    list lz = []; integer x;
    for (x = 0; x < llGetListLength(ly); ++x){
        if (~llListFindList(lx,llList2List(ly,x,x))){
            ;
        }
        else {
            lz = lz + llList2List(ly,x,x);
        }
    }
    return lx + lz;
}


Example:

list l1 = ["a","b","c","d"];
list l2 = ["a","1","b","2","c","3"];

list ListXorY(list lx, list ly){ // add the lists eliminating duplicates
    list lz = []; integer x;
    for (x = 0; x < llGetListLength(ly); ++x){
        if (~llListFindList(lx,llList2List(ly,x,x))){
            ;
        }
        else {
            lz = lz + llList2List(ly,x,x);
        }
    }
    return lx + lz;
}

default{
   state_entry() {
      llSay(0, "The new combined list is: " + llList2CSV(ListXorY(l1,l2)) );
      //will say: a, b, c, d, 1, 2, 3
   }
}

Posted with the kind permission of Very Keynes, who originated this script June 2007 in the SL scripters forum http://forums-archive.secondlife.com/54/e4/194138/1.html