I see.
Then I ask if is it possible at least, by placing a simple instruction
inside lambda (x y) ( ...) while iterating,  to:

1) replace x with a rest
2) add a list of articulations (for example:  "->", "\mp") to x



2018-03-05 17:28 GMT+01:00 David Kastrup <d...@gnu.org>:

> paolo prete <paoloprete...@gmail.com> writes:
>
> > Hello David,
> > thanks for the snippet but I ask if it is possible to modify only the
> body
> > of my function, inside lambda (x y)( ...  ) so to obtain the same result.
> > Something like:
> >
> >
> > %%%%%%%%
> >
> > fun = #(define-music-function (parser location music1 music2) (ly:music?
> > ly:music?)
> > (let
> >     (
> >       (musicList1 (ly:music-property music1 'elements))
> >       (musicList2 (ly:music-property music2 'elements))
> >     )
> >     (map
> >         (lambda (x y)
> >           ;
> >           ;  place HERE the code for copying the WHOLE y element to the
> > whole x element
> >           ;  (where y and x have the same position in their corresponding
> > lists)
> >           ;
> >         )
> >      musicList1 musicList2
> >     )
> > )
> > #{ $music1 #})
>
> No.  x and y are values stored in lists.  The relation to their lists is
> not passed into your function, so you cannot change it there.
>
> You'd need to use something like pair-for-each to modify the first list
> in-place, and that gets old fast as music structures change.
>
> There is an actual reason functions like map-some-music are provided.
>
> --
> David Kastrup
>
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to