#!/usr/bin/env sh
# -*- wisp -*-
guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -s "$0" "$@"
; !#
;; 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