Skip to content

Instantly share code, notes, and snippets.

@mnzk
Created November 28, 2012 13:40
Show Gist options
  • Save mnzk/4161365 to your computer and use it in GitHub Desktop.
Save mnzk/4161365 to your computer and use it in GitHub Desktop.
racket-clojure-like
(define-syntax apply->
(syntax-rules ()
((_ e (f a ...)) (f e a ...))
((_ e (f)) (f e))
((_ e f) (f e))))
(define-syntax %->
(syntax-rules ()
((_ e1 e2 e3 ...) (%-> (apply-> e1 e2) e3 ...))
((_ e1 e2) (apply-> e1 e2))
((_ e) e)))
(define-syntax apply->>
(syntax-rules ()
((_ e (f a ...)) (f a ... e))
((_ e (f)) (f e))
((_ e f) (f e))))
(define-syntax %->>
(syntax-rules ()
((_ e1 e2 e3 ...) (%->> (apply->> e1 e2) e3 ...))
((_ e1 e2) (apply->> e1 e2))
((_ e) e)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment