Dear GAP forum, I'm a bit confused by an apparent mismatch between the documentation for the ListX function and its actual behaviour. The documentation (section 21.21 of the reference manual) says that
"Each of the arguments [to ListX] must be one of the following: a list or collection [...] a function returning a list or collection [...] a function returning true or false [...] " But in practice, it seems that only collections are permissible, while general lists are not. Here's an example, using Gap 4.4.12: gap> square := function(x) return x*x; end; function( x ) ... end gap> ListX([1..10], square); [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ] So far, so good; this is what I expected. But now if I try to replace [1..10] with an empty list, I get an error: gap> ListX([], square); Error, gens[1] must be a collection, a boolean, or a function called from ListXHelp0( result, arg, 0 ); called from <function>( <arguments> ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue I was expecting to get the empty list as a result of this operation. Is this a bug in GAP, a bug in the documentation, or a bug in my understanding? Thanks, Mark _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum