Thomas Morley <thomasmorle...@gmail.com> writes:

> 2017-06-11 15:08 GMT+02:00 David Kastrup <d...@gnu.org>:
>>
>> \on-the-fly gets as first argument a function that it calls on the
>> second argument as if the first argument was actually a markup command.
>>
>> Why not make the first argument actually a markup command?
>>
>> It would appear that we are mostly talking about a closed set here
>> anyway.  So why
>>
>> \markup \on-the-fly #(on-page 3) "blabla"
>>
>> instead of
>>
>> \markup \on-page #3 "blabla"
>>
>> ?  Where is the point in this particular obfuscation?
>>
>> --
>> David Kastrup
>
> on-the-fly is one (of two) markup-(list-)commands in
> define-markup-commands.scm which takes a procedure as argument (the
> other is map-markup-commands). This procedure needs to have three
> arguments: layout, props and the one which is actually worked on.
>
> I desperately tried to find such a procedure, being sufficiently
> different from markup-(list-)-commands. To no avail.
>
> So I'd vote for dropping on-the-fly entirely. (Unless somebody know a
> good use-case)

The use case is similar to that of lambda: creating a procedure on the
fly without giving it a name.  But most of the current uses of
\on-the-fly are on a procedure _with_ a name.

> Ofcourse several procedures in titling-init.ly would need to become
> markup-commands.

My guess is that this might have been an emergency measure because of
problems with the scopes/modules of markups (since the usual \on-the-fly
suspects are in the \paper module).  But I think that this may have been
solved in the mean time.

> map-markup-commands from define-markup-commands.scm needs to be
> changed as well.  And regtests and docs...

I don't think there's anything wrong with keeping \on-the-fly .  But
requiring its use does not seem like doing people a favor.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to