PasteRack.org
Paste # 21833
2020-10-16 22:33:06

Fork as a new paste.

Paste viewed 527 times.


Embed:

helper macro inside cond

  1. #lang racket
  2.  
  3. (require syntax/parse/define)
  4.  
  5. (define-syntax-parser mac-helper
  6.   [(mac-helper [predicate consequent])
  7.    #'[predicate consequent]])
  8.  
  9. (define-syntax-parser mac
  10.   [(mac p c) #'(cond (mac-helper [p c]))])
  11.  
  12. (mac (positive? 5) 'hi) ; => error: "mac-helper: bad syntax"
  13.  
  14. ;; expected:
  15. ;;  => (cond (mac-helper [(positive? 5) 'hi]))
  16. ;;  => (cond ((positive? 5) 'hi))
  17. ;;  => 'hi

=>

eval:3.0: mac-helper: bad syntax

  in: mac-helper