Module squish
source code
squish [BINARY_FUNCTION ...]
Each input sequence is reduced to a single value, using
BINARY_FUNCTION to combine the values.
BINARY_FUNCTION is a binary function that can be used for
reduction, e.g. +, *, max,
min, but not - or /.
Example: If one of the inputs is the list [1, 2, 3,
4], then:
squish +
will generate 10 (= 1 + 2 + 3 + 4).
The result is exactly equivalent to what would be produced by using
the Python function map, e.g.:
map 'list: squish(lambda a, b: a + b, list)'
If input sequences contain nested sequences, then multiple
BINARY_FUNCTIONs can be provided, to do multiple reductions
at once. For example, if one input sequence is [[10, 20, 30], [1,
100, 1000], [111, 222, 333]] then:
squish + max min
will produce [122, 222, 30]. 122 is 10
+ 1 + 111, 222 is max(20, 100, 222), and
30 is min(30, 1000, 333).
If no BINARY_FUNCTION is provided, then + is
assumed.
|
Each input sequence is reduced to a single value. Elements of the
input sequence are combined using a squish_op, a binary
function that can be used for reduction, i.e. a binary associative
function such as addition, but not subtraction, (because x + y = y + x,
but x - y != y - x). If input sequences contain nested sequences, then
multiple squish_ops can be provided, to do multiple
reductions at once. The squish_op can be a function-valued expression, a
string function expression (e.g. 'x, y: x + y'), or a string
describing a binary associative operator, specifically one of: +,
*, ^, &, |, and, or.
|