> Le 10 juil. 2022 à 13:47, Werner LEMBERG <w...@gnu.org> a écrit :
> 
> 
> The documentation of `ly:context-property` is as follows.
> 
>  -- Function: ly:context-property context sym def
> 
>     Return the value for property SYM in CONTEXT.  If DEF is given,
>     and property value is ‘'()’, return DEF.
> 
> I have a use case where I want to say
> 
> ```
> \set SYM = #'()
> ```
> 
> i.e., I explicitly want to override the default DEF with an empty
> list.  How can I do that?



As a user, if the code is written that way, you have no proper solution. Yes, 
that’s a bit sad. (If the property is an alist, though, you can use a dummy 
alist with a key that is not in the set of keys the code looks for, e.g. a 
string if the alist is supposed to map numbers to something.)

As a developer, you should not write the code that way. I suspect you ask this 
in the context of your figured bass code, right? You need to put the default in 
the definition of the context in ly/engraver-init.ly so that you don’t need to 
use the third argument of ly:context-property. That also makes the default 
appear in the IR.

Jean



Reply via email to