On Sun, 2026-02-22 at 19:22 +0000, Werner LEMBERG wrote:
> I have a problem with understanding Guile's scoping rules.  Take, for
> example, function `accidental->markup`.  This is defined in file
> `chord-name.scm` as
> 
> ```
> (define (accidental->markup alteration)
>    ...)
> ```
> 
> However, the function is also used in other files, for example, in
> `chord-ignatzek-names.scm`.  Why does this work?  I always thought
> that `define` sets up a function that is local to a file, but this
> seems not to be case.
> 
> My working hypothesis is that those two files are both loaded in
> `lily.scm` (via the `init-scheme-files` list), which means that they
> are actually part of the 'lily' module – a function defined with
> `define` in one of the loaded files of this module is thus visible to
> all other loaded files (but not outside).
> 
> Is this interpretation correct?

Yes, that is also my understanding.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to