I believe the code below cuts your running time to one third. -- Matthias #lang racket
(require srfi/13) (define (euler4e) (for*/fold ([greatest 0]) ([first (in-range 101 1000)] [second (in-range first 1000)]) (define prod (* first second)) (if (palindromic? prod) (max greatest prod) greatest))) (define (palindromic? n) (define s (number->string n)) (define r (string-reverse s)) (string=? s r)) ____________________ Racket Users list: http://lists.racket-lang.org/users