There is however a more comfortable way to compute the product of a list of numbers or permutations.
    gap> Product([1..15]);
    1307674368000
    gap> Product(pp);
    (1,8,4,2,3,6,5) 
The function  Product  takes a  list as  its argument and computes  the
product  of  the  elements  of the  list.   This  is possible whenever  a
multiplication of  the elements of the list is defined.  So  Product is
just an implementation of the loop in the example above as a function.
There are other often used loops available as functions.   Guess what the
function Sum does.  The function List may  take a list and a function
as its arguments.  It will then apply the function to each element of the
list  and return  the corresponding list of results.   A list of cubes is
produced as follows with the function cubed from About Functions.
    gap> List([2..10], cubed);
    [ 8, 27, 64, 125, 216, 343, 512, 729, 1000 ] 
To add all these cubes  we might apply the  function  Sum to  the  last
list.  But we may  as well  give the  function  cubed to  Sum  as  an
additional argument.
    gap> Sum(last) = Sum([2..10], cubed);
    true 
The primes  less  than 30  can be retrieved out of the list primes from
section About Lists by  the function Filtered.   This  function takes
the list primes and a  property  as its arguments  and will return  the
list  of those  elements  of primes  which have  this property.  Such a
property will be  represented by a function that returns a boolean value.
In this example  the property of being less than 30  can be reresented by
the  function x- x < 30  since x < 30 will evaluate  to true for
values x less than 30 and to false otherwise.
    gap> Filtered(primes, x-> x < 30);
    [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ] 
Another useful thing is the operator { } that forms sublists.  It takes
a list of  positions as its argument and will return the list of elements
from the original list corresponding to these positions.
    gap> primes{ [1 .. 10] };
    [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ] 
In this section you have seen  some functions which implement  often used
for loops.  There are functions  like Product  to form the product of
the elements of a list.  The function List can apply  a function to all
elements of  a list  and  the functions  Filtered  and Sublist create
sublists of a given list.
You will find more predefined for loops in chapter Lists.
GAP 3.4.4