PasteRack.org
Paste # 66027
2020-07-06 01:15:11

Fork as a new paste.

Paste viewed 233 times.


Embed:

#lang racket

(define-syntax-parameter it (lambda (x) (raise-syntax-error #f)))
(define-syntax (aif stx)
               (syntax-case stx
                            [(_ g t e)
                             #'(syntax-parameterize ([it (make-rename-transformer #'it)]) (let ([it g]) (if it t e)))]))

(define-syntax (m stx)
               (syntax-case stx
                            [(_ a b) #'(aif (and (> a 4) 'y) it b)]))

(let ((it 'false)) (aif it (m 3 it) #f)))

=>

prog:13:40: read-syntax: unexpected `)`
  context...:
   read-undotted
   read-syntax3
   /home/pasterack/racket73/collects/syntax/module-reader.rkt:190:25: loop
   /home/pasterack/racket73/collects/syntax/module-reader.rkt:183:2: wrap-internal
   /home/pasterack/racket73/collects/racket/../syntax/module-reader.rkt:65:9: lang:read-syntax
   read-syntax3
   /home/pasterack/racket73/share/pkgs/scribble-lib/scribble/private/manual-code.rkt:112:0: get-tokens
   /home/pasterack/racket73/share/pkgs/scribble-lib/scribble/private/manual-code.rkt:56:0: typeset-code15
   "/home/pasterack/pasterack/tmp/66027/66027code.scrbl": [running body]
   temp37_0
   for-loop
   run-module-instance!125
   do-dynamic-require5
   loop
   ...cket/cmdline.rkt:191:51
   "/home/pasterack/racket73/share/pkgs/scribble-lib/scribble/run.rkt": [running body]
   ...