Gianmaria Lari <[email protected]> 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

_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to