Is this valid behavior?

-----sub-sub.scm------
#lang racket
(provide  my-global-var print-my-global-var set-my-global-var!)
(define my-global-var "global in sub-sub")
(define (print-my-global-var) (display my-global-var) (newline))
(define (set-my-global-var! v) (set! my-global-var v))
-------------------------

-----sub.scm------
#lang racket
(provide  set-my-global-var-in-sub print-my-global-var-in-sub)
(require "sub-sub.scm")
(define (set-my-global-var-in-sub) (set-my-global-var! "in sub"))
(define (print-my-global-var-in-sub)
-------------------------


--------main.scm-----------------
#lang racket

(require "sub.scm")
(require "sub-sub.scm")

(display  my-global-var)(newline)
(print-my-global-var-in-sub)
(print-my-global-var)

(set-my-global-var! "call sub sub")

(display  my-global-var)(newline)
(print-my-global-var-in-sub)
(print-my-global-var)

(set-my-global-var-in-sub)

(display  my-global-var)(newline)
(print-my-global-var-in-sub)
(print-my-global-var)
-------------------------

$racket main.scm

global in sub-sub
global in sub-sub
global in sub-sub
call sub sub
call sub sub
call sub sub
in sub
in sub
in sub
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to