lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

## Re: Get value of Scheme function to display as a markup in Lilypond

 From: David Nalesnik Subject: Re: Get value of Scheme function to display as a markup in Lilypond Date: Tue, 23 Nov 2021 19:18:25 -0600

Hi,

On Tue, Nov 23, 2021 at 5:36 PM Dimitris Marinakis <dtsmarin02@gmail.com> wrote:
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

There’s a lot of useful information - including the usage of format - in the Guile 1.8 manual:
https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/index.html

David N.

On Wed, Nov 24, 2021 at 1:08 AM Aaron Hill <lilypond@hillvisions.com> 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

reply via email to

 [Prev in Thread] Current Thread [Next in Thread]