lilypond-user-fr
[Top][All Lists]
Advanced

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

Re: Traduction


From: Nicolas Sceaux
Subject: Re: Traduction
Date: Thu, 6 Nov 2008 20:58:50 +0100

Le 6 nov. 08 à 00:06, John Mandereau a écrit :

Mais en l'occurence, il ne
faut _pas_ traduire du tout : (parser location) est *la* syntaxe
canonique d'une music-function.

En effet, il me semble que LilyPond a besoin que les arguments "parser"
et "location" soient nommés ainsi.

Ils peuvent être nommés n'importe comment, comme n'importe quel autre
argument de fonction. Mais mieux vaut appliquer le principe de moindre
surprise, disons, et appeler ces arguments comme ils le sont partout
ailleurs.

Les arguments parser et location, ne seront pas utilisés la plupart du temps.
Ils sont néanmoins utiles :

- `location' peut être utilisé pour positionner la propriété 'origin de
l'expression  musicale produite de façon à ce que l'analyseur syntaxique
puisse produire un message d'erreur avec numéro de ligne qui va bien quand
une erreur de syntaxe a lieu avec cette expression. Voir par exemple la
définition de la fonction applyOutput dans ly/music-functions-init.ly ;

- `parser' est utile par exemple pour accéder à la valeur d'une variable
musicale, qu'on aura saisi par exemple à un autre endroit sous la forme :
toto = { do re mi fa }
Alors on peut faire par exemple :
  (let ((music (ly:parser-lookup parser 'toto)))
... utiliser la variable music qui contient alors { do re mi fa } ...)

[...]
Ça peut être une paire de n'importe quoi, pas forcément de deux éléments de même types d'ailleurs ; par exemple, une liste non vide est une paire
de premier élément n'importe quoi et de second élément une liste.  En
code Scheme, la phrase précédente signifie que

'(3 1 2)

est une expression (ici une liste d'entiers) équivalente à

'(3 . '(1 2))

'(3 . (1 2)) en fait
ce que tu as écrit est équivalent à '(3 . (quote (1 2))

En notant '() la liste vide, on a qu'une liste à un élément nommé a
s'écrit

'(a)

ou bien

'(a . '())

'(a . ())

où '() est la liste vide.  En développant la liste plusieurs fois en
paires, on obtient que la liste de départ '(3 1 2) s'écrit aussi

'(3 . '(1 . '(2 . '() )))

'(3 . (1 . (2 . ())))

nicolas





reply via email to

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