[racket] Performance help

From: Jens Axel Søgaard (jensaxel at soegaard.net)
Date: Fri Jan 2 11:38:15 EST 2015

2015-01-02 17:10 GMT+01:00 Matthias Felleisen <matthias at ccs.neu.edu>:
>
> Jens -- thanks for re-directing us to your article. This saved me quite
> some time. I noticed the lacking abstractions (slicing, comprehension)
> and considered sketching a prototype to use with this program. I decided
> to wait till today because it didn't address what bothered me most:
>
>  speed.

One trick: change the regular expression in  words  in order to
get rid of the call to string-downcase:

   (regexp-split #rx"[^a-zA-Z]" buf)

Another trick: the regular expression matchers in Racket works both
on strings and ports, so  train  can be written

    (define (train fname)
       (freqs (words (open-input-file fname))))

I am not sure whether it will give a speedup though.

/Jens Axel

Posted on the users mailing list.