Module pl.seq
Manipulating iterators as sequences.
See The Guide
Dependencies: pl.utils, pl.types, debug
Functions
| matching (s) | given a string, return a function(y) which matches y against the string. | 
| list (t) | sequence adaptor for a table. | 
| keys (t) | return the keys of the table. | 
| range (start, finish) | create an iterator over a numerical range. | 
| minmax (iter) | return the minimum and the maximum value of the sequence. | 
| sum (iter, fn) | return the sum and element count of the sequence. | 
| copy (iter) | create a table from the sequence. | 
| copy2 (iter, i1, i2) | create a table of pairs from the double-valued sequence. | 
| copy_tuples (iter) | create a table of 'tuples' from a multi-valued sequence. | 
| random (n, l, u) | return an iterator of random numbers. | 
| sort (iter, comp) | return an iterator to the sorted elements of a sequence. | 
| zip (iter1, iter2) | return an iterator which returns elements of two sequences. | 
| count_map (iter) | Makes a table where the key/values are the values and value counts of the sequence. | 
| printall (iter, sep, nfields, fmt) | print out a sequence iter with a separator. | 
| map (fn, iter, arg) | return a sequence where every element of a sequence has been transformed by a function. | 
| filter (iter, pred, arg) | filter a sequence using a predicate function. | 
| reduce (fn, iter, initval) | 'reduce' a sequence using a binary function. | 
| take (iter, n) | take the first n values from the sequence. | 
| skip (iter, n) | skip the first n values of a sequence | 
| enum (iter) | a sequence with a sequence count and the original value. | 
| mapmethod (iter, name, arg1, arg2) | map using a named method over a sequence. | 
| last (iter) | a sequence of (last,current) values from another sequence. | 
| foreach (iter, fn) | call the function on each element of the sequence. | 
| lines (f, ...) | create a wrapped iterator over all lines in the file. | 
Functions
- matching (s)
- 
    given a string, return a function(y) which matches y against the string.
    Parameters:- s a string
 
- list (t)
- 
    sequence adaptor for a table.    Note that if any generic function is
 passed a table, it will automatically use seq.list()
    Parameters:- t a list-like table
 Usage:- sum(list(t)) is the sum of all elements of t 
- for x in list(t) do...end 
 
- keys (t)
- 
    return the keys of the table.
    Parameters:- t an arbitrary table
 Returns:- 
        iterator over keys
    
 
- range (start, finish)
- 
    create an iterator over a numerical range.  Like the standard Python function xrange.
    Parameters:- start a number
- finish a number greater than start
 
- minmax (iter)
- 
    return the minimum and the maximum value of the sequence.
    Parameters:- iter a sequence
 Returns:- minimum value
- maximum value
 
- sum (iter, fn)
- 
    return the sum and element count of the sequence.
    Parameters:- iter a sequence
- fn an optional function to apply to the values
 
- copy (iter)
- 
    create a table from the sequence.  (This will make the result a List.)
    Parameters:- iter a sequence
 Returns:- 
        a List
    
 Usage:- copy(list(ls)) is equal to ls 
- copy(list {1,2,3}) == List{1,2,3}
 
- copy2 (iter, i1, i2)
- 
    create a table of pairs from the double-valued sequence.
    Parameters:- iter a double-valued sequence
- i1 used to capture extra iterator values
- i2 as with pairs & ipairs
 Returns:- 
        a list-like table
    
 Usage:copy2(ipairs{10,20,30}) == {{1,10},{2,20},{3,30}} 
- copy_tuples (iter)
- 
    create a table of 'tuples' from a multi-valued sequence.
 A generalization of copy2 above
    Parameters:- iter a multiple-valued sequence
 Returns:- 
        a list-like table
    
 
- random (n, l, u)
- 
    return an iterator of random numbers.
    Parameters:- n the length of the sequence
- l same as the first optional argument to math.random
- u same as the second optional argument to math.random
 Returns:- 
        a sequence
    
 
- sort (iter, comp)
- 
    return an iterator to the sorted elements of a sequence.
    Parameters:- iter a sequence
- comp an optional comparison function (comp(x,y) is true if x < y)
 
- zip (iter1, iter2)
- 
    return an iterator which returns elements of two sequences.
    Parameters:- iter1 a sequence
- iter2 a sequence
 Usage:for x,y in seq.zip(ls1,ls2) do....end 
- count_map (iter)
- 
    Makes a table where the key/values are the values and value counts of the sequence.
 This version works with 'hashable' values like strings and numbers.
 pl.tablex.count_map is more general.
    Parameters:- iter a sequence
 Returns:- a map-like table
- a table
 See also:
- printall (iter, sep, nfields, fmt)
- 
    print out a sequence iter with a separator.
    Parameters:- iter a sequence
- sep the separator (default space)
- nfields maximum number of values per line (default 7)
- fmt optional format function for each value
 
- map (fn, iter, arg)
- 
    return a sequence where every element of a sequence has been transformed
 by a function.  If you don't supply an argument, then the function will
 receive both values of a double-valued sequence, otherwise behaves rather like
 tablex.map.
    Parameters:- fn a function to apply to elements; may take two arguments
- iter a sequence of one or two values
- arg optional argument to pass to function.
 
- filter (iter, pred, arg)
- 
    filter a sequence using a predicate function.
    Parameters:- iter a sequence of one or two values
- pred a boolean function; may take two arguments
- arg optional argument to pass to function.
 
- reduce (fn, iter, initval)
- 
    'reduce' a sequence using a binary function.
    Parameters:- fn func a function of two arguments
- iter a sequence
- initval optional initial value
 Usage:- seq.reduce(operator.add,seq.list{1,2,3,4}) == 10
- seq.reduce('-',{1,2,3,4,5}) == -13 
 
- take (iter, n)
- 
    take the first n values from the sequence.
    Parameters:- iter a sequence of one or two values
- n number of items to take
 Returns:- 
        a sequence of at most n items
    
 
- skip (iter, n)
- 
    skip the first n values of a sequence
    Parameters:- iter a sequence of one or more values
- n number of items to skip
 
- enum (iter)
- 
    a sequence with a sequence count and the original value.
 enum(copy(ls)) is a roundabout way of saying ipairs(ls).
    Parameters:- iter a single or double valued sequence
 Returns:- 
        sequence of (i,v), i = 1..n and v is from iter.
    
 
- mapmethod (iter, name, arg1, arg2)
- 
    map using a named method over a sequence.
    Parameters:- iter a sequence
- name the method name
- arg1 optional first extra argument
- arg2 optional second extra argument
 
- last (iter)
- 
    a sequence of (last,current) values from another sequence.
  This will return S(i-1),S(i) if given S(i)
    Parameters:- iter a sequence
 
- foreach (iter, fn)
- 
    call the function on each element of the sequence.
    Parameters:- iter a sequence with up to 3 values
- fn a function
 
- lines (f, ...)
- 
    create a wrapped iterator over all lines in the file.
    Parameters:- f either a filename, file-like object, or 'STDIN' (for standard input)
- ... for Lua 5.2 only, optional format specifiers, as in io.read.
 Returns:- 
        a sequence wrapper