; (define-syntax my-let
;	(syntax-rules ()

(my-let ([a 3] [b 5])
	(my-let ([c (+ a b)])
		(+ c 4)))
		
; (my-if x then y else z)

; (define-syntax my-if
;  (syntax-rules 

(my-if (< 3 4) then 5 else 6)
(my-if (< 3 2) then 5 else 6)
(my-if (< 3 2) then 5)
(list (my-if (< 3 2) then 5))

;; (define-syntax ++
;;  (syntax-rules ()


(define a 5)
(++ a)
a
(define b (+ 3 (++ a)))
b
a

;; (define-syntax ++post
;;  (syntax-rules ()
 

(define b (+ 3 (++post a)))
b
a
(++ (* a 2))

;; (define-syntax my-and
;;  (syntax-rules ()

(my-and)
(my-and 4)
(my-and 4 #f 6)
(my-and 4 5 6)
(expand '(my-and 4 5 6))

;; (define-syntax for
;;  (syntax-rules (:)

(for (((define i 0) (define j 1)) :
      (< i 12) :
      (++ i) (set! j (* 2 j)))
     (display i)
     (display "  ")
     (display j)
     (newline))