lilypond-user
[Top][All Lists]
Advanced

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

Re: Universal default value function


From: Vaughan McAlley
Subject: Re: Universal default value function
Date: Mon, 25 Jan 2021 17:33:09 +1100

Thanks Aaron!

On Mon, 25 Jan 2021 at 15:54, Aaron Hill <lilypond@hillvisions.com> wrote:
> Did you mean to attach or include a code snippet?  Hard to spot any
> problem without it.  :)
>

Oops, guilty as charged.

> Regardless, review the following:
>
> %%%%
> \version "2.22.0"
>
> valueOrDefault =
> #(define-scheme-function
>    (module symbol default)
>    ((module? (current-module)) symbol? scheme?)
>    (module-ref module symbol default))
>
> defineOnce =
> #(define-void-function
>    (module symbol value)
>    ((module? (current-module)) symbol? scheme?)
>    (or (module-defined? module symbol)
>        (module-define! module symbol value)))
>
> {
>    \valueOrDefault foo { b'1 }
>    \defineOnce foo { b'4 4 2 }
>    \valueOrDefault foo { b'1 }
>    \defineOnce foo { b'8 8 2. }
>    \foo
> }
> %%%%
>

That works well. I was tying my brain in knots thinking about symbols and variables. Using the module definitions looks very robust.

Thanks again!
Vaughan


reply via email to

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