lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automated processing of multiple books


From: Simon Albrecht
Subject: Re: Automated processing of multiple books
Date: Wed, 4 Nov 2015 19:28:30 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 04.11.2015 19:24, David Kastrup wrote:
Simon Albrecht <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]