The last example looked at Hecke algebras with parameter q=1 and R
a field of characteristic~3 (so e=3); that is,  the group algebra of
the symmetric group over a field of characteristic 3. More, generally,
the   command  Specht(p, p) can be    used to consider the group
algebras of the   symmetric groups over  fields  of characteristic p
(ie. e=p, and R a field of characteristic~p).
To consider Hecke algebras defined over arbitrary fields Specht must
also  be  supplied with a  valuation  map val as an  argument. The
function  val is a map  from some PID  into the  natural numbers; at
present it   is needed    only  by functions  which rely     (at least
implicitly), upon the q--analogue of Schaper's theorem. In general,
val depends upon q and the characteristic of R; full details can
be found in [JM2].
Over fields of characteristic  zero, and in  the symmetric group case,
the function val is automatically defined by Specht. When R is a
field  of characteristic zero,  val([i]_q) is  1  if e divides
i and~0 otherwise (this  is the valuation  map associated to the
prime ideal    in C[v]   generated    by the   e--th  cyclotomic
polynomial). When  <q>=1 and R is a  field of  characteristic p,
val is the usual p--adic valuation map.
As another example, if <q>=4 and R is a field of characteristic 5 (so <e>=2), then the valuation map sends the integer x to nu_5([4]_x) where [4]_x is interpreted as an integer and nu_5 is the usual 5--adic valuation. To consider this Hecke algebra one could proceed as follows:
gap> val:=function(x) local v;
>       x:=Sum([0..x-1],v->4^v);  # x-${>}$[x]\_q
>       v:=0; while x mod 5=0 do x:=x/5; v:=v+1; od;
>       return v;
>     end;;
gap> H:=Specht(2,5,val,"e2q4");
Specht(e=2, p=5, S(), P(), D(), HeckeRing="e2q4")
Notice the string ``e2q4'' which   was also passed to Specht   in
this example. Although it is not strictly necessary, it is a good idea
when using a ``non--standard'' valuation  map val to specify  the
value of H.HeckeRing=HeckeRing.  This string is used for  internal
bookkeeping  by  Specht; in  particular,   it  is  used to  determine
filenames   when  reading and saving    decomposition  matrices. If  a
``standard''  valuation map is used then  HeckeRing is set to the
string   ``e{<}e{>}p{<}p{>}'';       otherwise  it  defaults  to
``unknown''.  The function  SaveDecompositionMatrix  will not save
any    decomposition  matrix  for    any     Hecke algebra   H  with
H.HeckeRing=``unknown''.
GAP 3.4.4