#!/home/arne/wisp/wisp-multiline.sh -l guile
; !#
;; Testing syntax-rules and syntax-case with wisp
;; Syntax-case: add1 (from guile docs)
define-syntax add1
lambda : x
syntax-case x :
: _ exp
syntax : + exp 1
;; use the #' shorthand for syntax
define-syntax add2
lambda : x
syntax-case x :
: _ exp
#' + exp 2
;; Syntax-rules add which requires at least 1 argument
define-syntax add-with-argument
syntax-rules :
: _ a b ...
+ a b ...
;; Same with syntax-case
define-syntax add-with-argument
lambda : x
syntax-case x :
: _ a b ...
#' + a b ...
format #t "this breaks\n"
add-with-argument
format #t "returns 1: ~A\n" : add-with-argument 1