PasteRack.org
Paste # 94383
2014-10-27 19:30:28

Fork as a new paste.

Paste viewed 186 times.


Embed:

  1. #lang racket
  2.  
  3. (module base racket
  4.   (define my-table (make-hasheq))
  5.  
  6.   (define-syntax (my-define stx)
  7.         (syntax-case stx ()
  8.           [(_ my-id expr) (identifier? #'my-id)
  9.            #'(hash-set! my-table 'my-id expr)]))
  10.  
  11.   (define-syntax (my-eval stx)
  12.         (syntax-case stx ()
  13.           [(_ my-id)
  14.            #'(hash-ref my-table my-id #f)]))
  15.  
  16.   (provide my-define
  17.            my-eval)
  18.   )
  19.  
  20. (module m1 racket
  21.   (require (submod ".." base))
  22.   (my-define a (+ 1 2))
  23.   )
  24.  
  25. (require 'base)
  26. (require 'm1)
  27.  
  28. (my-eval 'a)

=>

3