guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: a happy user


From: Kalle Olavi Niemitalo
Subject: Re: a happy user
Date: 01 Oct 2000 20:24:21 +0300

Bill Schottstaedt <address@hidden> writes:

> (defmacro with-sound (args . body)
>   `((lambda* (#:key (srate 22050)
>                   (explode #f))
>       (let ((old-srate (mus-srate)))
>       (dynamic-wind
>        (lambda ()
>          (set! (mus-srate) srate))
>        (lambda ()
>          ,@body)
>        (lambda ()
>          (set! (mus-srate) old-srate)))))
>     ,@args))

Shouldn't you use gensyms for srate, explode (what's that?) and
old-srate?

When I coded for Guile Emacs, I avoided gensyms by using helper
functions:

(define* (with-sound-helper thunk #:key (srate 22050) (explode #f))
  (let ((old-srate (mus-srate)))
    (dynamic-wind (lambda () (set! (mus-srate) srate))
                  thunk
                  (lambda () (set! (mus-srate) old-srate)))))
(defmacro with-sound (args . body)
  `(with-sound-helper (lambda () ,@body)
                      ,@args))

Is this a good idea in general?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]