Mark Polesky wrote: > (define grobs-sorted-by-paper-column > (let loop ((remaining all-grob-descriptions) > (musical '()) > (non-musical '())) > (cond ((null? remaining) (cons musical non-musical)) > ((ly:assoc-get 'non-musical (cdar remaining)) > (loop (cdr remaining) > musical > (append non-musical `(,(caar remaining))))) > (else (loop (cdr remaining) > (append musical `(,(caar remaining))) > non-musical))))) > > (define-public musical-column-grobs > (car grobs-sorted-by-paper-column)) > > (define-public non-musical-column-grobs > (cdr grobs-sorted-by-paper-column))
Incidentally, I found I could simplify these with "filter": (define musical-column-grobs (map car (filter (lambda (a) (not (ly:assoc-get 'non-musical (cdr a)))) all-grob-descriptions))) (define non-musical-column-grobs (map car (filter (lambda (a) (ly:assoc-get 'non-musical (cdr a))) all-grob-descriptions))) - Mark _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel