====================================================================
FactoredFunctions2 examples
====================================================================

The FactoredFunctions2 package implements one operation, map, for
applying an operation to every base in a factored object and to the unit.

  double(x) == x + x
                         Type: Void

  f := factor(720) 
     4 2
    2 3 5
                         Type: Factored Integer

Actually, the map operation used in this example comes from Factored
itself, since double takes an integer argument and returns an integer
result.

  map(double,f) 
       4 2
    2 4 6 10
                         Type: Factored Integer

If we want to use an operation that returns an object that has a type
different from the operation's argument, the map in Factored cannot be
used and we use the one in FactoredFunctions2.

  makePoly(b) == x + b 
                  4       2
    (x + 1)(x + 2) (x + 3) (x + 5)
                         Type: Factored Polynomial Integer

In fact, the "2" in the name of the package means that we might
be using factored objects of two different types.

  g := map(makePoly,f) 

It is important to note that both versions of map destroy any information 
known about the bases (the fact that they are prime, for instance).

The flags for each base are set to "nil" in the object returned by map.

  nthFlag(g,1) 
    "nil"
                        Type: Union("nil",...)

See Also:
o )help Factored
o )show FactoredFunctions2

