PasteRack.org
Paste # 10483
2019-11-09 11:21:17

Fork as a new paste.

Paste viewed 251 times.


Embed:

Timing Parameters w/ Some Noise

#lang racket/base

(define x-param (make-parameter #f))
(define x-mutable #f)
(define (get-x-mutable)
  x-mutable)

(for ([T (in-range 3)])
  (define v1
    (time
     (for/sum ([K (in-range 1000)])
       (parameterize ([x-param (list 3 K)])
         (for/sum ([i (in-range 200000)])
           (if (= 0 (modulo i 3))
               (cadr (x-param))
               0))))))

  (define v2
    (let ()
      (time
       (for/sum ([K (in-range 1000)])
         (set! x-mutable (list 7 K))
         (for/sum ([i (in-range 200000)])
           (if (= 0 (modulo i 3)) (cadr (get-x-mutable)) 0))))))

  (displayln (equal? v1 v2)))