Nah <sche...@runbox.com> writes: > I have a project with 100+ scores, each in their own file. I tried to > create a Scheme function to \include each of them. After searching the > archive, I got the general idea of why my solution isn't > working. However, I didn't find something like a snippet that I could > coax into what I want. I have programming experience in C, Python, > etc., but I'm still pretty clueless with Scheme. > > What I want is a function that does something like: > foreach fname #{ \include #fname #} > > In Python, I would just read all the filenames in the directory, sort > them, then run the foreach. Can I do something like that in Scheme? > And how do I put the result in a form that will work with \include?
$(ly:parser-include-string (format #f "~{\\include \"/tmp/~a\"\n~}" (let ((d (opendir "/tmp"))) (let loop ((f (readdir d)) (res '())) (cond ((eof-object? f) (closedir d) (sort res string<?)) ((string-suffix? ".ly" f) (loop (readdir d) (cons f res))) (else (loop (readdir d) res)))))))
Be aware that this is quite a bad idea if the file itself is in the directory we are talking about here... -- David Kastrup
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user