LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Объединил вручную.

(define (test) 
  (letrec ([oddp (lambda (x) 
                   (if (zero? x) #f 
                       (let ([x (unsafe-fx- x 1)]) 
                         (if (zero? x) #t (oddp (unsafe-fx- x 1))))))])
    (oddp 400000000)))

Теперь не в 5, а в 4 раза медленнее, чем SBCL. Хотя теперь отличие только в развёртке циклов.

Исходная версия monk, :

Объединил вручную.

(define (test) 
  (letrec ([oddp (lambda (x) 
                   (if (zero? x) #f 
                       (let ([x (unsafe-fx- x 1)]) 
                         (if (zero? x) #t (oddp (unsafe-fx- x 1))))))])
    (oddp 400000000)))

Теперь на в 5, а в 4 раза медленнее, чем SBCL. Хотя теперь отличие только в развёртке циклов.