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