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 function 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