|
From: | Dimitris Marinakis |
Subject: | Re: Get value of Scheme function to display as a markup in Lilypond |
Date: | Wed, 24 Nov 2021 01:35:46 +0200 |
\markup #(format #f "result = ~a" (dostuff 47))
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
[Prev in Thread] | Current Thread | [Next in Thread] |