Difference between revisions of "ListXorY"

From Second Life Wiki
Jump to navigation Jump to search
(New page: {{LSL Header}} __NOTOC__ <div id="box"> == Function: list ListXorY(list {{LSL Param|lx}}, list {{LSL Param|ly}}); == <div style="padding: 0.5em;"> Join two lists to make one ne...)
 
Line 4: Line 4:
<div style="padding: 0.5em;">
<div style="padding: 0.5em;">
Join two lists to make one new combined list, while also eliminating any resulting duplicates in the new list.
Join two lists to make one new combined list, while also eliminating any resulting duplicates in the new list.
<lsl>
list ListXorY(list lx, list ly){ // add the lists eliminating duplicates
    list lz = []; integer x;
    for (x = 0; x < llGetListLength(ly); ++x){
        if ((integer)~llListFindList(lx,llList2List(ly,x,x))){
            ;
        }
        else {
            lz = lz + llList2List(ly,x,x);
        }
    }
    return lx + lz;
}
</lsl>




Line 20: Line 35:
</lsl>
</lsl>


</div>


 
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
</div></div>
<div id="box">
== Specification ==
<div style="padding: 0.5em;">
<lsl>
list ListXorY(list lx, list ly){ // add the lists eliminating duplicates
    list lz = []; integer x;
    for (x = 0; x < llGetListLength(ly); ++x){
        if ((integer)~llListFindList(lx,llList2List(ly,x,x))){
            ;
        }
        else {
            lz = lz + llList2List(ly,x,x);
        }
    }
    return lx + lz;
}
</lsl>
</div></div>
 
Posted with the kind permission of Very Keynes, which originated this script June 2007 in the SL scripters forum http://forums.secondlife.com/showthread.php?t=194138


{{LSLC|Examples|Float2String}}
{{LSLC|Examples|Float2String}}

Revision as of 15:45, 12 July 2008

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.

<lsl> list ListXorY(list lx, list ly){ // add the lists eliminating duplicates

   list lz = []; integer x;
   for (x = 0; x < llGetListLength(ly); ++x){
       if ((integer)~llListFindList(lx,llList2List(ly,x,x))){
           ;
       }
       else {
           lz = lz + llList2List(ly,x,x);
       }
   }
   return lx + lz;

} </lsl>


Example:

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

default{

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

} </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