Thank you both for the information. I wasn't aware of the formatted output to be honest.
\markup #(format #f "result = ~a" (dostuff 47)) This line of code doesn't make any sense to me currently but when I get into more complex stuff I'll try to understand it. Right now I'm trying to build up a sensibility for basic programming principles because this is my first attempt at programming. Lilypond is so important to me that I need to be able to craft some solutions by myself. Best, Dimitris On Wed, Nov 24, 2021 at 1:08 AM Aaron Hill <[email protected]> wrote: > 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 >
