Initial commit

This commit is contained in:
Mateus Pinto Rodrigues
2017-11-11 15:15:10 -02:00
commit 58c3bd6728
1202 changed files with 434097 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
#lang racket/base
(require (for-syntax racket/base
syntax/parse))
(provide try)
;; Some try/catch syntax. Because `with-handlers` can be
;; exceptionally bass-ackwards when nested (pun intended).
(define-syntax (try stx)
(define-splicing-syntax-class catch-clause
(pattern (~seq #:catch pred:expr id:id e:expr ...+)
#:with handler #'[pred (lambda (id) e ...)]))
(syntax-parse stx
[(_ body:expr ...+ catch:catch-clause ...+)
#'(with-handlers (catch.handler ...)
body ...)]))