40 lines
839 B
Scheme
40 lines
839 B
Scheme
;; -*- geiser-scheme-implementation: guile -*-
|
|
|
|
(if (our-test)
|
|
(begin
|
|
(do-thing-1)
|
|
(do-thing-2)))
|
|
|
|
(define (when test . body)
|
|
`(if ,test
|
|
,(cons 'begin body)))
|
|
|
|
(when '(our-test)
|
|
'(do-thing-1)
|
|
'(do-thing-2))
|
|
; (if (our-test) (begin (do-thing-1) (do-thing-2)))
|
|
|
|
(define-macro (when test . body)
|
|
`(if ,test
|
|
,(cons 'begin body)))
|
|
|
|
(when (our-test)
|
|
(do-thing-1)
|
|
(do-thing-2))
|
|
|
|
(define-syntax-rule (when test body ...)
|
|
(if test
|
|
(begin body ...)))
|
|
|
|
(define-syntax-rule (for (item lst) body ...)
|
|
(for-each (lambda (item)
|
|
body ...)
|
|
lst))
|
|
|
|
(for (str '("strawberries" "bananas" "grapes"))
|
|
(display
|
|
(string-append "I just love "
|
|
(string-upcase str)
|
|
"!!!\n")))
|
|
|
|
; #<unspecified>
|