Hi all,

(1)
consider the following code (working as expected):

\paper {
  #(if #t (set-paper-size "a8" 'landscape) #(set-paper-size "a8"))
}

\score { { R1 } \layout { ragged-right = ##f } }

Switching from #t to #f results in different paper-size, as desired.

(2)
But trying to put it in a procedure, it always returns the true-case:

#(define (proc bool x y)
  (if bool x y))

\paper {
  #(proc #f (set-paper-size "a8" 'landscape) #(set-paper-size "a8"))
}

\score { { R1 } \layout { ragged-right = ##f } }

Paper-size is always a8-landscape.

(3)
Trying:
#(define (proc bool x y)
  (if bool x y))

\paper {
  #(apply set-paper-size (proc #t '("a8" 'landscape) '("a8")))
}

\score { { R1 } \layout { ragged-right = ##f } }

Paper-size is always a8

---------

What's happening here and why?
And how to make a procedure accepting set-paper-size work, with
different settings and an if-condition?

Cheers,
  Harm

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to