This blog post is based on an improvised demo that I gave at the Newcastle University on May 21st, 2015 during a short visit supported by the CoDiMa project.
Let’s consider the following exercise: for a finite group G, calculate the average order of its element (that is, the sum of orders of its elements divided by the order of the group). We begin with a very straightforward approach, iterating over all elements of the group in question:
gap> S:=SymmetricGroup(10); Sym( [ 1 .. 10 ] ) gap> sum:=0; 0 gap> for g in S do > sum := sum + Order(g); > od; gap> sum/Size(S); 39020911/3628800
Now assume that we would like to save this fragment of the GAP code and later repeat this calculation for some other groups. (more…)