PasteRack.org
Paste # 5046
2021-03-17 12:01:36

Fork as a new paste.

Paste viewed 290 times.


Embed:

  1. ;; badlang.rkt
  2.  
  3. (module badlang racket
  4.   (define-syntax my-top
  5.     (lambda (stx)
  6.       (define var (cdr (syntax-e stx)))
  7.       (writeln "hi there!")
  8.       #`(#%top . #,var)))
  9.   (#%provide
  10.     (all-from-except racket #%top)
  11.     (rename my-top #%top)
  12.   )
  13. )
  14.  
  15. ;; m.rkt
  16.  
  17. (module m "badlang.rkt"
  18.   x
  19.   (define x 1)
  20.   (define-syntax print-when-compilation-is-over (lambda (stx) (writeln "compilation over")))
  21.   print-when-compilation-is-over
  22.   ; Prints "hi there!" followed by "compilation over" at compile time
  23. )

=>