Difference between revisions of "ListStridedMove"

From Second Life Wiki
Jump to navigation Jump to search
(New page: {{LSL Header}} __NOTOC__ <div id="box"> == Function: list ListStridedMove( list {{LSL Param|dest}}, list {{LSL Param|src}}, integer {{LSL Param|start}}, integer {{LSL ...)
 
m (<lsl> tag to <source>)
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{LSL Header}} __NOTOC__
{{LSL_Function
<div id="box">
|mode=user
== Function: [[list]] ListStridedMove( [[list]] {{LSL Param|dest}}, [[list]] {{LSL Param|src}},
|func=ListStridedMove
[[integer]] {{LSL Param|start}}, [[integer]] {{LSL Param|end}}, [[integer]] {{LSL Param|stride}} ) ;
|p1_type=list|p1_name=myList
==
|p2_type=integer|p2_name=start
<div style="padding: 0.5em;">
|p3_type=integer|p3_name=end
Moves something in a strided list to another place in the strided list.
|p4_type=integer|p4_name=stride
|p5_type=integer|p5_name=target
|return_type=list
|return_text=that contains the elements of '''myList''' but with the strides in the range of '''start''' to '''end''' moved to the stride position '''target'''.
|func_desc=Moves a stride from one position to another position.
|func_footnote=
<source lang="lsl2">list ListStridedMove(list myList, integer start, integer end, integer stride, integer target) {
    if(stride <= 0) stride = 1;
    list item = llList2List(myList, start *= stride, end = ((stride * (end + 1)) - 1));
    return llListInsertList(llDeleteSubList(myList, start, end), myList = item, target * stride);
}</source>


See also: [[List#Strided_lists|Strided Lists]]
See also: [[List#Strided_lists|Strided Lists]]
 
|spec
<lsl>
|helpers
list ListStridedMove(list myList, integer src, integer dest) {
|also_functions
    string item = llList2String(myList, src);
|also_events
    myList = (myList=[]) + llDeleteSubList(myList, src, src);
|also_tests
    myList = (myList=[]) + llListInsertList(myList, (list)item, dest + (dest > src));
|also_articles
    return myList;
|notes
}
|cat1=Examples
</lsl>
|cat2=User-Defined Functions
 
|cat3
 
|cat4
</div>
}}
 
{{LSLC|Examples|ListStridedMove}}

Latest revision as of 15:21, 22 January 2015

Summary

Function: list ListStridedMove( list myList, integer start, integer end, integer stride, integer target );

Moves a stride from one position to another position.
Returns a list that contains the elements of myList but with the strides in the range of start to end moved to the stride position target.

• list myList
• integer start
• integer end
• integer stride
• integer target

list ListStridedMove(list myList, integer start, integer end, integer stride, integer target) {
    if(stride <= 0) stride = 1;
    list item = llList2List(myList, start *= stride, end = ((stride * (end + 1)) - 1));
    return llListInsertList(llDeleteSubList(myList, start, end), myList = item, target * stride);
}

See also: Strided Lists

Examples