On Thu, 2019-03-28 at 18:22 -0700, Aaron Hill wrote: > On 2019-03-28 3:14 pm, Thomas Morley wrote: > > Am Do., 28. März 2019 um 22:22 Uhr schrieb Aaron Hill > > <[email protected]>: > > > > > > On 2019-03-28 2:18 pm, Valentin Villenave wrote: > > > > On 3/28/19, Pedro Pessoa <[email protected]> wrote: > > > > > I imagined something like: > > > > > > > > > > %%% pseudo > > > > > #(define var > > > > > (not (is-bound? var) 0)) > > > > > %%% > > > > > > > > I’d probably probably do something like > > > > > > > > (null? (ly:parser-lookup 'var)) > > > > > > > > But I’m sure there are better ways :-) > > > > > > ;;;; > > > (if (not (defined? 'foo)) (define foo 47)) > > > ;;;; > > > > > > > > > -- Aaron Hill > > > > It's worth mentioning, the above will throw an error in guilev2: > > > > error: GUILE signaled an error for the expression beginning here > > # > > (if (not (defined? 'foo)) (define foo 47)) > > definition in expression context, where definitions are not allowed
This sounds like a problem I had when Denemo started running under Guile 2 - I asked on the guile mailing list and got fixed up with this: ;;; for guile 2.0 compatibility define the define-once procedure to work in guile 1.8 (cond-expand (guile-2) ; nothing (else ; guile < 2.0 (define-macro (define-once sym exp) `(define ,sym (if (module-locally-bound? (current-module) ',sym) ,sym ,exp))))) Apologies in advance if this is un-related, I've not been following this thread :( Richard _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
