On 04.11.2015 19:24, David Kastrup wrote:
Simon Albrecht <[email protected]> writes:Hello, I have written a Scheme function to automatically produce all parts given through a symbol-list. Here is a boiled-down, dummy example: %%%%%%%%%%%% \version "2.19.28" printParts = #(define-scheme-function (abbrs) (symbol-list-or-symbol?) (let ((abbrs (if (symbol? abbrs) (list abbrs) abbrs)) (process-part (lambda (abbr) (print-book-with-defaults #{ \book { \bookOutputName #(string-append "wrap-multiple-books-" (symbol->string abbr)) \score { c } \paper { #(set-paper-size "a10") indent = 0 } \header { tagline = ##f } } #})))) (map process-part abbrs))) \printParts one.two %%%%%%%%%%%% This compiles fine inasmuch as the output is just as intended, but it does sport a: <0>"/home/simon/lilypond/tests/wrap-multiple-books.ly:17:1: error: bad expression type \printParts one.two" Is this worth a bug report about this error appearing too easily?No. You use map instead of for-each,
How would I use for-each here? I’m not familiar with that.
you use define-scheme-function instead of define-void-function.
Ah, I see. I wouldn’t have thought that a function which basically runs print-book-with-default would classify as a void function.
Thanks for the enlightenment. Yours, Simon _______________________________________________ lilypond-user mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-user
