In the example below, I'm curious about the reason for the difference between 
the behavior of the system parameter `error-print-width` and the custom 
parameter `my-param`. 

I understand why `my-param` doesn't take the parameterized value 'custom (= 
because `namespace-require` causes a fresh instantiation of "param.rkt" in the 
new namespace, which binds `my-param` with its default value). 

But if that's the case, then why does `error-print-width` accept the 
parameterized value? Why doesn't it get instantiated at its default value of 
250 when the new namespace is made?


;; param.rkt
#lang racket
(provide my-param)
(define my-param (make-parameter 'default))


;; param-test.rkt
#lang racket
(require "param.rkt")
(parameterize ([current-namespace (make-base-namespace)]
               [error-print-width 4242]
               [my-param 'custom])
  (namespace-require "param.rkt")
  (namespace-require 'rackunit)
  (eval '(begin (check-equal? (error-print-width) 4242) ;; not 250
                (check-equal? (my-param) 'default)))) 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to