mit-scheme-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Project Euler Problem 10 interpreted vs compiled.


From: vamsi kalapala
Subject: Project Euler Problem 10 interpreted vs compiled.
Date: Fri, 15 Mar 2024 21:03:15 +0530

MIT-Scheme-Developers,

I was using mit-scheme 12.1 to solve Project Euler Problem 10. The code I wrote is pasted below. The call to (solve 2000000) at the REPL does take more than 10 seconds on my laptop (In fact I always had to CTRL+C after a while). Once I compile the file and then load the compiled .com file, it takes less than 2 seconds for the correct answer to show up in the REPL. Why is there such a huge discrepancy between interpreted code and compiled code?

Thanks,
Vamsi

(define (is_prime a)
  (define (loop_a b c)
    (cond ((> c a) #t)
          ((= 0 (remainder a b)) #f)
          (else (let* ((d (+ b 2))
                       (e (* d d)))
                  (loop_a d e)))))
  (cond ((< a 2) #f)
        ((< a 4) #t)
        ((even? a) #f)
        (else (loop_a 3 9))))

(define (solve a)
  (define (loop_a b c)
    (cond ((< b a) (let ((d (is_prime b))
                         (e (+ b 2))
                         (f (+ b c)))
                     (cond (d (loop_a e f))
                           (else (loop_a e c)))))
          (else c)))
  (cond ((< a 3) 0)
        (else (loop_a 3 2))))

(solve 2000000)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]