Как лучше всего измерить прошедшее время в Racket?

Ниже приведена моя программа быстрой сортировки в Scheme с использованием Racket, и я хотел бы измерить время этой программы, но я не могу найти способ сделать это.

Я старался (time(quicksort(list 1 4 3))) но это не так точно, как я ожидал. Есть ли идеальный способ сделать это?

#lang racket

(define (partition compare lst)
  (cond
     ((null? lst) '())
     ((compare (car lst)) (cons (car lst) (partition compare (cdr lst))))
     (else (partition compare (cdr lst)))))

(define (quicksort lst)
  (cond
     ((null? lst) '())
     (else (let ((pivot (car lst)))
        (append (append (quicksort (partition (lambda (x) (< x pivot)) lst))
                   (partition (lambda (x) (= x pivot)) lst))
                (quicksort (partition (lambda (x) (> x pivot)) lst)))))))

0 ответов

Другие вопросы по тегам