For Hecke algebras H defined over fields of characteristic zero Lascoux, Leclerc and Thibon [LLT] have described an easy, inductive, algorithm for calculating the decomposition matrices of H. Their algorithm really calculates the canonical basis, or (global) crystal basis of the Fock space; results of Grojnowski--Lusztig [Gr] show that computing this basis is equivalent to computing the decomposition matrices of H (see also [A]).
The Fock space F is an  (integrable) module for the quantum group
U_q(widehat{sl}_{<e>}) of the  affine special linear group. F is
a free  C[v]--module with basis    the set of  all Specht  modules
S(mu)  for all  partitions  mu of   all  integers   F =
bigoplus_nge0bigoplus_muvdash nC[v] S(mu);   here
v=H.info.Indeterminate is an  indeterminate over the integers  (or
strictly, C).  The  canonical basis elements   Pq(mu) for the
U_q(widehat{sl}_e)--submodule  of  F   generated     by      the
0--partition  are      indexed    by  e--regular        partitions
mu.   Moreover,  under  specialization,   Pq(mu) maps to
P(mu).  An eloquent description of  the algorithm for computing
H.Pq(mu) can be found in [LLT].
To access the elements of the Fock space Specht provides the functions:
H.Pq(mu)  qquad  H.Sq(mu)
Notice that,  unlike H.P and  H.S the  only arguments which H.Pq
and H.Sq accept are partitions. (Given that our indeterminate is v
these  functions should  really  be called  H.Pv  and  H.Sv;  here
``q'' stands for ``quantum.)
The function H.Pq computes the canonical basis element Pq(mu)
of the Fock space corresponding to  the e--regular partition mu
(there  is a canonical  basis  for the whole of  the  Fock space [LT];
conjecturally,  this basis can  be used  to compute the  decomposition
matrices for  the  q--Schur  algebra over  fields of  characteristic
zero).  The second   function  returns   a  standard basis     element
S(mu) of F.
gap> H:=Specht(4); Specht(e=4, S(), P(), D(), Pq()) gap> H.Pq(6,2); S(6,2)+v*S(5,3) gap> RestrictedModule(last); S(6,1)+(v + v^(-1))*S(5,2)+v*S(4,3) gap> H.P(last); P(6,1)+(v + v^(-1))*P(5,2) gap> Specialized(last); P(6,1)+2*P(5,2) gap> H.Sq(5,3,2); S(5,3,2) gap> InducedModule(last,0); v^(-1)*S(5,3,3)
The modules returned   by H.Pq  and  H.Sq behave   very much  like
elements of the Grothendieck  ring  of H;  however, they  should  be
considered as elements of  the Fock space. The  key difference is that
when induced or  restricted ``quantum'' analogues  of induction and
restriction are  used.  These  analogues correspond  to  the action of
U_q(widehat{sl}_{<e>}) on F [LLT].
In effect, the  functions H.Pq and H.Sq  allow computations in the
Fock  space,  using the functions InducedModule  InducedModule and
RestrictedModule RestrictedModule. The functions H.S, H.P, and
H.D can also be applied to elements of the Fock space, in which case
they have  the expected effect. In addition,  any element of  the Fock
space  can be specialized   to give the  corresponding element  of the
Grothendieck ring of H (it is because of this correspondence that we
do not make  a distinction between elements  of the Fock space and the
Grothendieck ring of H).
When working   over   fields of   characteristic   zero Specht  will
automatically calculate any canonical basis elements that it needs for
computations in   the  Grothendieck  ring of   H.  If you  are   not
interested  in the canonical basis elements   you need never work with
them directly.  If, for  some reason, you do not  want Specht to use
the  canonical basis elements to  calculate decomposition numbers then
all you need to do is Unbind(H.Pq).
GAP 3.4.4