| PasteRack.org | ||
| Paste # 48149 | ||
| 2019-11-09 12:22:05 | ||
Fork as a new paste. | ||
Paste viewed 258 times. | ||
Tweet | ||
Embed: | ||
#|
~$ racket param.rkt
cpu time: 7080 real time: 7070 gc time: 0
cpu time: 1618 real time: 1616 gc time: 0
#t
cpu time: 7095 real time: 7089 gc time: 0
cpu time: 1619 real time: 1618 gc time: 0
#t
cpu time: 7076 real time: 7070 gc time: 0
cpu time: 1618 real time: 1616 gc time: 0
#t
~$ racketcs param.rkt
cpu time: 4499 real time: 4508 gc time: 7
cpu time: 881 real time: 881 gc time: 0
#t
cpu time: 4542 real time: 4542 gc time: 0
cpu time: 853 real time: 853 gc time: 0
#t
cpu time: 4529 real time: 4529 gc time: 0
cpu time: 881 real time: 881 gc time: 0
#t
|#
#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 500000)])
(if (= 0 (bitwise-and i 17))
(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 500000)])
(if (= 0 (bitwise-and i 17))
(cadr (get-x-mutable))
0))))))
(displayln (equal? v1 v2)))