On 2021-11-23 2:56 pm, Dimitris Marinakis wrote:
Finally got to learn a bit of Scheme. I've made decent progress within
the
Scheme sandbox. Now I'm trying to integrate a few things within
Lilypond.
Let's say I have this function:
#(define (dostuff x) (+ x 5))
What would be the equivalent of #(display (dostuff 2)) but inside a
Lilypond markup?
So that if my Lilypond music code looks like that, I'll get the correct
value from that function.
{
c^\markuptitle (placeholder) #2
}
I don't want the x argument to be displayed in the markup but rather
the
result of the function.
It's OK if this has to be broken into multiple steps.
One option is to format the output you want as a string and then include
that in \markup:
####
#(define (dostuff x) (+ x 5))
\markup #(format #f "result = ~a" (dostuff 47))
####
If you just need the value, you could use number->string. But for
anything fancier, the formatted printing functionality is quite powerful
and worth learning:
%%%%
\markup #(format #f "~{~a fish~^, ~}." '(one two red blue))
%%%%
-- Aaron Hill