Mercurial Hosting > luan
comparison website/src/manual.html.luan @ 565:22bfd8a2eaee
do Table documentation;
replace Table.clone and Table.sub_list with Table.copy;
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Sun, 05 Jul 2015 00:47:00 -0600 |
| parents | 7cc9d4a53d3b |
| children | 90b93790c544 |
comparison
equal
deleted
inserted
replaced
| 564:c8d4d69c6dd4 | 565:22bfd8a2eaee |
|---|---|
| 89 <ul> | 89 <ul> |
| 90 <li><a href="#default_lib">Default Environment</a></li> | 90 <li><a href="#default_lib">Default Environment</a></li> |
| 91 <li><a href="#luan_lib">Basic Functions</a></li> | 91 <li><a href="#luan_lib">Basic Functions</a></li> |
| 92 <li><a href="#package_lib">Modules</a></li> | 92 <li><a href="#package_lib">Modules</a></li> |
| 93 <li><a href="#string_lib">String Manipulation</a></li> | 93 <li><a href="#string_lib">String Manipulation</a></li> |
| 94 <li><a href="#table_lib">Table Manipulation</a></li> | |
| 94 </ul> | 95 </ul> |
| 95 </div> | 96 </div> |
| 96 | 97 |
| 97 <hr/> | 98 <hr/> |
| 98 | 99 |
| 2655 | 2656 |
| 2656 | 2657 |
| 2657 | 2658 |
| 2658 | 2659 |
| 2659 | 2660 |
| 2660 <h2>6.6 – <a name="6.6">Table Manipulation</a></h2> | 2661 <h3 heading><a name="table_lib">Table Manipulation</a></h3> |
| 2662 | |
| 2663 <p> | |
| 2664 Include this library by: | |
| 2665 | |
| 2666 <pre> | |
| 2667 local Table = require "luan:Table" | |
| 2668 </pre> | |
| 2661 | 2669 |
| 2662 <p> | 2670 <p> |
| 2663 This library provides generic functions for table manipulation. | 2671 This library provides generic functions for table manipulation. |
| 2664 It provides all its functions inside the table <a name="pdf-table"><code>table</code></a>. | 2672 It provides all its functions inside the table <code>Table</code>. |
| 2665 | 2673 |
| 2666 | 2674 |
| 2667 <p> | 2675 |
| 2668 Remember that, whenever an operation needs the length of a table, | 2676 <h4 heading><a name="Table.concat"><code>Table.concat (list [, sep [, i [, j]]])</code></a></h4> |
| 2669 the table must be a proper sequence | 2677 |
| 2670 or have a <code>__len</code> metamethod (see <a href="#3.4.7">§3.4.7</a>). | 2678 <p> |
| 2671 All functions ignore non-numeric keys | 2679 Given a list, |
| 2672 in the tables given as arguments. | |
| 2673 | |
| 2674 | |
| 2675 <p> | |
| 2676 <hr><h3><a name="pdf-table.concat"><code>table.concat (list [, sep [, i [, j]]])</code></a></h3> | |
| 2677 | |
| 2678 | |
| 2679 <p> | |
| 2680 Given a list where all elements are strings or numbers, | |
| 2681 returns the string <code>list[i]..sep..list[i+1] ··· sep..list[j]</code>. | 2680 returns the string <code>list[i]..sep..list[i+1] ··· sep..list[j]</code>. |
| 2682 The default value for <code>sep</code> is the empty string, | 2681 The default value for <code>sep</code> is the empty string, |
| 2683 the default for <code>i</code> is 1, | 2682 the default for <code>i</code> is 1, |
| 2684 and the default for <code>j</code> is <code>#list</code>. | 2683 and the default for <code>j</code> is <code>#list</code>. |
| 2685 If <code>i</code> is greater than <code>j</code>, returns the empty string. | 2684 If <code>i</code> is greater than <code>j</code>, returns the empty string. |
| 2686 | 2685 |
| 2687 | 2686 |
| 2688 | 2687 <h4 heading><a name="Table.copy"><code>Table.copy (tbl [, i [, j]])</code></a></h4> |
| 2689 | 2688 |
| 2690 <p> | 2689 <p> |
| 2691 <hr><h3><a name="pdf-table.insert"><code>table.insert (list, [pos,] value)</code></a></h3> | 2690 If <code>i</code> is <code>nil</code>, returns a shallow copy of <code>tbl</code>. |
| 2692 | 2691 Otherwise returns a new table which is a list of the elements <code>tbl[i] ··· tbl[j]</code>. |
| 2692 By default, <code>j</code> is <code>#tbl</code>. | |
| 2693 | |
| 2694 | |
| 2695 | |
| 2696 <h4 heading><a name="Table.insert"><code>Table.insert (list, pos, value)</code></a></h4> | |
| 2693 | 2697 |
| 2694 <p> | 2698 <p> |
| 2695 Inserts element <code>value</code> at position <code>pos</code> in <code>list</code>, | 2699 Inserts element <code>value</code> at position <code>pos</code> in <code>list</code>, |
| 2696 shifting up the elements | 2700 shifting up the elements |
| 2697 <code>list[pos], list[pos+1], ···, list[#list]</code>. | 2701 <code>list[pos], list[pos+1], ···, list[#list]</code>. |
| 2698 The default value for <code>pos</code> is <code>#list+1</code>, | 2702 |
| 2699 so that a call <code>table.insert(t,x)</code> inserts <code>x</code> at the end | 2703 |
| 2700 of list <code>t</code>. | 2704 |
| 2701 | 2705 <h4 heading><a name="Table.pack"><code>Table.pack (···)</code></a></h4> |
| 2702 | |
| 2703 | |
| 2704 | |
| 2705 <p> | |
| 2706 <hr><h3><a name="pdf-table.move"><code>table.move (a1, f, e, t [,a2])</code></a></h3> | |
| 2707 | |
| 2708 | |
| 2709 <p> | |
| 2710 Moves elements from table <code>a1</code> to table <code>a2</code>. | |
| 2711 This function performs the equivalent to the following | |
| 2712 multiple assignment: | |
| 2713 <code>a2[t],··· = a1[f],···,a1[e]</code>. | |
| 2714 The default for <code>a2</code> is <code>a1</code>. | |
| 2715 The destination range can overlap with the source range. | |
| 2716 Index <code>f</code> must be positive. | |
| 2717 | |
| 2718 | |
| 2719 | |
| 2720 | |
| 2721 <p> | |
| 2722 <hr><h3><a name="pdf-table.pack"><code>table.pack (···)</code></a></h3> | |
| 2723 | |
| 2724 | 2706 |
| 2725 <p> | 2707 <p> |
| 2726 Returns a new table with all parameters stored into keys 1, 2, etc. | 2708 Returns a new table with all parameters stored into keys 1, 2, etc. |
| 2727 and with a field "<code>n</code>" with the total number of parameters. | 2709 and with a field "<code>n</code>" with the total number of parameters. |
| 2728 Note that the resulting table may not be a sequence. | 2710 Note that the resulting table may not be a sequence. |
| 2729 | 2711 |
| 2730 | 2712 |
| 2731 | 2713 |
| 2732 | 2714 |
| 2733 <p> | 2715 <h4 heading><a name="Table.remove"><code>Table.remove (list, pos)</code></a></h4> |
| 2734 <hr><h3><a name="pdf-table.remove"><code>table.remove (list [, pos])</code></a></h3> | |
| 2735 | 2716 |
| 2736 | 2717 |
| 2737 <p> | 2718 <p> |
| 2738 Removes from <code>list</code> the element at position <code>pos</code>, | 2719 Removes from <code>list</code> the element at position <code>pos</code>, |
| 2739 returning the value of the removed element. | 2720 returning the value of the removed element. |
| 2744 The index <code>pos</code> can also be 0 when <code>#list</code> is 0, | 2725 The index <code>pos</code> can also be 0 when <code>#list</code> is 0, |
| 2745 or <code>#list + 1</code>; | 2726 or <code>#list + 1</code>; |
| 2746 in those cases, the function erases the element <code>list[pos]</code>. | 2727 in those cases, the function erases the element <code>list[pos]</code>. |
| 2747 | 2728 |
| 2748 | 2729 |
| 2749 <p> | 2730 |
| 2750 The default value for <code>pos</code> is <code>#list</code>, | 2731 |
| 2751 so that a call <code>table.remove(l)</code> removes the last element | 2732 <h4 heading><a name="Table.sort"><code>Table.sort (list [, comp])</code></a></h4> |
| 2752 of list <code>l</code>. | |
| 2753 | |
| 2754 | |
| 2755 | |
| 2756 | |
| 2757 <p> | |
| 2758 <hr><h3><a name="pdf-table.sort"><code>table.sort (list [, comp])</code></a></h3> | |
| 2759 | |
| 2760 | 2733 |
| 2761 <p> | 2734 <p> |
| 2762 Sorts list elements in a given order, <em>in-place</em>, | 2735 Sorts list elements in a given order, <em>in-place</em>, |
| 2763 from <code>list[1]</code> to <code>list[#list]</code>. | 2736 from <code>list[1]</code> to <code>list[#list]</code>. |
| 2764 If <code>comp</code> is given, | 2737 If <code>comp</code> is given, |
| 2767 before the second in the final order | 2740 before the second in the final order |
| 2768 (so that <code>not comp(list[i+1],list[i])</code> will be true after the sort). | 2741 (so that <code>not comp(list[i+1],list[i])</code> will be true after the sort). |
| 2769 If <code>comp</code> is not given, | 2742 If <code>comp</code> is not given, |
| 2770 then the standard Lua operator <code><</code> is used instead. | 2743 then the standard Lua operator <code><</code> is used instead. |
| 2771 | 2744 |
| 2772 | |
| 2773 <p> | 2745 <p> |
| 2774 The sort algorithm is not stable; | 2746 The sort algorithm is not stable; |
| 2775 that is, elements considered equal by the given order | 2747 that is, elements considered equal by the given order |
| 2776 may have their relative positions changed by the sort. | 2748 may have their relative positions changed by the sort. |
| 2777 | 2749 |
| 2778 | 2750 |
| 2779 | 2751 |
| 2780 | 2752 <h4 heading><a name="Table.unpack"><code>Table.unpack (list [, i [, j]])</code></a></h4> |
| 2781 <p> | |
| 2782 <hr><h3><a name="pdf-table.unpack"><code>table.unpack (list [, i [, j]])</code></a></h3> | |
| 2783 | |
| 2784 | 2753 |
| 2785 <p> | 2754 <p> |
| 2786 Returns the elements from the given list. | 2755 Returns the elements from the given list. |
| 2787 This function is equivalent to | 2756 This function is equivalent to |
| 2788 | 2757 |
| 2789 <pre> | 2758 <pre> |
| 2790 return list[i], list[i+1], ···, list[j] | 2759 return list[i], list[i+1], ···, list[j] |
| 2791 </pre><p> | 2760 </pre> |
| 2761 | |
| 2762 <p> | |
| 2792 By default, <code>i</code> is 1 and <code>j</code> is <code>#list</code>. | 2763 By default, <code>i</code> is 1 and <code>j</code> is <code>#list</code>. |
| 2793 | 2764 |
| 2794 | 2765 |
| 2795 | 2766 |
| 2796 | 2767 |
