[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scheme function
From: |
Urs Liska |
Subject: |
Re: scheme function |
Date: |
Thu, 20 Dec 2018 13:10:21 +0100 |
User-agent: |
K-9 Mail for Android |
Am 20. Dezember 2018 13:02:22 MEZ schrieb David Kastrup <address@hidden>:
>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.
And it must be
(set! counter (+ 1 counter))
(first the procedure "+", then the arguments)
Urs