Макросы считывателя Racket

Есть ли способ сделать простые макросы для чтения в Racket. Я имею в виду такое обобщение:

(define-reader-syntax "'" quote)
; finds expressions that start with "'" and wraps them in `(quote ...)`
'(foo) ; => (quote (foo))
'foo ; => (quote foo)

Я использовал встроенный синтаксис, чтобы прояснить, что я имею в виду. Одна из вещей, которые я бы хотел хотел бы использовать это для репликации сокращенного лямбда-выражения clojure (# (+ 1%) 5); => 6

Похоже, что было бы очень легко просто определить макрос «сокращенного лямбда» и сопоставить Префикс "#" для этого.

19
задан adrusi 27 November 2011 в 23:04
поделиться