Subject: fonction scheme avec paramètre optionnel

From: Daniel Cartron <[email-masked]>
Date: Sun, 17 May 2015 17:33:57 +0200

Bonjour/soir

J'ai music = {a b c d} et mafonction qui fait bien son boulot quand j'écris 
\mafonction \music

Je voudrais dans mon fichier ly et donc pas dans du scheme mais du lilypond 
donner un paramètre optionnel à ma fonction :
\mafonction 2 \music
\mafonction 3 \music
et si il n'y a rien ça veut dire 
\mafonction 1 \music

Je suis sûr d'avoir lu qq chose là-dessus qq part mais où....

-- 
Cordialement, Daniel Cartron
« Celui qui peut, agit. Celui qui ne peut pas, enseigne.  »
George Bernard Shaw - Maximes pour révolutionnaires

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 17 May 2015 17:43:12 +0200

> Je suis sûr d'avoir lu qq chose là-dessus qq part mais où....

je pense avoir trouvé, dites moi juste si c'est bon :
mafonction = #(define-music-function  (parser location parametre music)
  (number? ly:music?)
-- 
Cordialement, Daniel Cartron
« Pour une réponse affirmative, il n'existe qu'un seul mot : oui. Tous les 
autres mots ont été inventés pour dire non. »
Tristan Bernard

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 17 May 2015 19:52:59 +0200

bah oui c'est tout bon :
http://www.lilypond.org/doc/v2.16/Documentation/extending/music-functions

Le 17 mai 2015 17:43, Daniel Cartron <[email-masked]> a écrit :

> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 18 May 2015 11:52:54 +0200

#(define parametre
    (if (defined? 'parametre)
        parametre
        1))

??
Cordialement,
Pierre

Le 18 mai 2015 06:55, Daniel Cartron <[email-masked]> a écrit :

> Le dimanche 17 mai 2015 19:52:59, vous avez écrit :
> > bah oui c'est tout bon
> sauf que je voudrais que le paramètre soit optionnel (genre s'il n'y a rien
> c'est 1 par défaut) et là je ne trouve plus où j'avais vu ça.
>
> --
> « L'être humain a besoin d'être flatté, sinon il ne devient pas ce qu'il
> est
> destiné à devenir, pas même à ses propres yeux. »
> Pär LAGERKVIST, Le Nain.
>
>

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 18 May 2015 12:34:35 +0200

-- 
Cordialement, Daniel Cartron
« L'être humain a besoin d'être flatté, sinon il ne devient pas ce qu'il est 
destiné à devenir, pas même à ses propres yeux. »
Pär LAGERKVIST, Le Nain.

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 18 May 2015 12:53:10 +0200

>     (if (defined? 'parametre)

il semblerait que non...

J'ai lu qq part (était-ce dans ce code sommaire de création de tablature 
d'harmo en lyrics que tu n'avais peutềtre toi mm indiqué ?) qu'on pouvait 
indiquer qu'un parametre est optionnel avec un truc comme option ou je ne sais 
plus quoi... Et ça prend une valeur par défaut.

-- 
Cordialement, Daniel Cartron
« L'homme est plein d'imperfections, mais on ne peut que se montrer indulgent 
si l'on songe a l'époque a laquelle il fut créé. »
Alphonse Allais.

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 18 May 2015 13:04:36 +0200

> >     (if (defined? 'parametre)

Sans doute aurais-je dû préciser que c'est une fonction du genre
#(define-music-function (parser location param mus) (integer? ly:music?)

-- 
Cordialement, Daniel Cartron
« La seule différence entre un sage et un imbécile, c'est que le sage a 
tendance à commettre des erreurs beaucoup plus graves, parce que personne ne 
confie des décisions importantes à un imbécile. »
Tom Clancy - Dangers immédiats

---

From: Daniel Cartron <[email-masked]>
Date: Wed, 20 May 2015 11:08:38 +0200

Le lundi 18 mai 2015, 12:53:10 Daniel Cartron a écrit :
> indiquer qu'un parametre est optionnel avec un truc comme option ou je ne
> sais plus quoi... Et ça prend une valeur par défaut.

J'ai retrouvé :
#(define* (draw hole #:optional (bends 0)) 

mais ça coince pour mettre ça dans 
makeTabBass = #(define-music-function (parser location param mus) (integer? 
ly:music?)

Par ailleurs si je veux passer une liste, du genre (3 2) en argument je fais 
comment ? Liste optionnelle aussi d'aileurs.

Merci

-- 
Cordialement, Daniel Cartron
« Je vais donc enfin vivre seul ! Et, déjà, je me demande avec qui. »
Sacha Guitry - N'écoutez pas, mesdames !