[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scheme : récupérer la métrique
From: |
Olivier Miakinen |
Subject: |
Re: scheme : récupérer la métrique |
Date: |
Mon, 27 Apr 2015 09:14:02 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
Bonjour,
Je ne connais pas le scheme, mais j'ai pas mal pratiqué un dialecte du
lisp et ça me semble très proche. Je réponds comme si c'était du lisp,
les spécialistes me corrigeront.
Le 27/04/2015 08:51, Daniel Cartron a écrit :
>
> getTimeSig = #(define-music-function (parser location music) (ly:music?)
> ""
> (define beatLen 0)
> (define beatStr 0)
> (define beatNum 0)
Ok, tu définis trois variables globales.
> (music-map
> (lambda (evt)
> (cond (eq? (ly:music-property music 'name) 'TimeSignatureMusic)
> (let
Définition et utilisation de variables locales.
> (
> (beatLen (ly:music-property evt 'denominator #f))
> (beatStr (ly:music-property evt 'beat-structure #f))
> (beatNum (ly:music-property evt 'numerator #f))
> )
Les variables *locales* beatLen, beatStr et beatNum existent ici.
> )
Ici elles n'existent plus. Les variables globales du début redeviennent
visibles, avec leur valeur 0.
> )
> evt
> )
> music
> )
> )
Pour modifier la valeur des variables globales, en lisp je ferais ceci :
(when (eq? (ly:music-property music 'name) 'TimeSignatureMusic)
(setq beatLen (ly:music-property evt 'denominator #f))
(setq beatStr (ly:music-property evt 'beat-structure #f))
(setq beatNum (ly:music-property evt 'numerator #f))
)
Est-ce la même chose en scheme ?
Re: scheme : récupérer la métrique, PharoahS, 2015/04/27