lilypond-user
[Top][All Lists]
Advanced

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

Re: scheme function


From: David Kastrup
Subject: Re: scheme function
Date: Thu, 20 Dec 2018 13:02:22 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Gianmaria Lari <address@hidden> writes:

> %alternate version
> \version "2.19.82"
> nextcount =
>   #(let  ((counter 0))
>      (lambda ()
>        (set! counter (1+ counter))
>        (number->string counter)))
>
> \markup #(nextcount)
> \markup #(nextcount)
>
>
> I would like to know if it is possible to write it using
> define-scheme-function. This is what I tried that does not compile.
>
> \version "2.19.82"
> nextcount =
>   #(define-scheme-function () ()
>      (let  ((counter 0))
>      (lambda ()
>        (set! counter (1+ counter))
>        (number->string counter)
>        )
>      ))
>
> \mark \nextcount
> \mark \nextcount

Uh, there is a difference between \markup and \mark .  Once you fixed
that, your counter will be reset to 0 for each invocation of the
function.  You need

nextcount =
  #(let ((counter 0))
     (define-scheme-function ...

instead.

-- 
David Kastrup



reply via email to

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