On 6/29/21, 2:14 PM, "Aaron Hill" <lilyp...@hillvisions.com> wrote:

    On 2021-06-29 12:45 pm, Carl Sorensen wrote:
    > I believe that the logical implications of side-effects are not very
    > concerning when local variables are set!, so there's probably very
    > little or no downside to the set!s in Aaron's code.  In fact, it's
    > possible that Aaron's code will use less heap space by re-using class
    > instead of adding a new variable grob-class-name.  But I can't help
    > myself; I want to avoid the grief  Sussman would give me over two
    > unneeded set! calls.....
    
    I prefer that pattern of set! calls because it helps you avoid nesting 
    S-expressions too deeply, which I feel greatly improves readability and 
    maintainability.  It is the same reason I bothered to define the 
    add-class-name procedure, so that it would not be nested within the 
    engraver definition itself, better separating concerns.
    
    Additionally, I have taken flack for pushing some of the more functional 
    elements of Scheme programming.  (Mention the word "lambda" once, and 
    everyone assumes you are a pure functional zealot.)  Regardless, I have 
    tended to favor a more imperative approach lately, something that is 
    likely to be more consumable for users of LilyPond.

I don't disagree with your assessment.

Thanks,

Carl
 

Reply via email to