Hello all,
I have a question about how to use optional arguments in scheme functions. 
In my tiny example below I want to be able to leave out the 3rd argument,
but then LilyPond takes the 2nd \makeScore as the 3rd argument (which
doesn't work).  I'm just curious to learn how to do this assuming there is a
way.  I can always just enter "" or \default for the 3rd argument (but then
is it really optional?).

Relevant docs:
http://lilypond.org/doc/v2.19/Documentation/extending/scheme-function-definitions

Thanks,
-Paul


\version "2.19.2"

TuneA = { c'1 }
TuneB = { g'1 }

makeScore =
#(define-scheme-function
  (parser location melody title composer)
  (ly:music? string? (string? ""))
  #{
    \score {
      \new Staff {
        #melody
      }
      \header {
        piece = #title
        opus = #composer
      }
    }
  #})

\bookpart {

  \makeScore
  \TuneA
  "TuneA"
  % needs either of these as 3rd (optional?) argument to work
  % ""
  % \default 

  \makeScore
  \TuneB
  "TuneB"
  "ComposerB"
}



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Optional-arguments-tp160187.html
Sent from the User mailing list archive at Nabble.com.

_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to