void frequency (vb -w fq, vb text)                                             /* strlen (text) =~ n * log2 (n), { n = length (fq) } */
{
  void calc () [-w fq, text]
  {
    words_in (text, (pchar word) [-w fq] {
                                           if (!fq->contains (&access_code, text, word), { -w access_code = 0 }) 
                                             add (fq, text, word, 1);
                                           else 
                                             set (fq, access_code, counter + 1), { counter = get (fq, access_code) };
                                         });
  }

  if (fq->is (T_LIST, T_SLICE, T_ULONG)) calc ();
  else error (ERR_PARAMETER);
}