You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
12 lines
329 B
Racket
12 lines
329 B
Racket
8 years ago
|
#lang racket/base
|
||
|
(require racket/list)
|
||
|
(provide (all-defined-out))
|
||
|
|
||
|
(define (syntax-flatten stx)
|
||
|
(flatten
|
||
|
(let loop ([stx stx])
|
||
|
(let* ([stx-unwrapped (syntax-e stx)]
|
||
|
[maybe-pair (and (pair? stx-unwrapped) (flatten stx-unwrapped))])
|
||
|
(if maybe-pair
|
||
|
(map loop maybe-pair)
|
||
|
stx)))))
|