Subject: tableau associatif scheme

From: Daniel Cartron <[email-masked]>
Date: Sun, 22 Mar 2015 18:32:31 +0100

Bonsoir,

J'ai essayé à peu près tout ce que j'ai pu voir dans les docs, mais je 
n'arrive pas à faire marcher mon truc.

Je voudrais écrire un tableau associatif qui dise que 
5 -> ("txt" "txt" 6 "txt")

J'essaye de dire ça en français :
si j'ai le chiffre 5 ça me renvoit la liste ("txt" "txt" 6 "txt")

Donc si qqun pouvait me donner la syntaxe de ce tableau, alist ou autre et 
comment je peux récupérer la liste, ensuite j'arriverai bien à coup de caddr 
et autres horreurs du mm nom à récupérer mes billes...

-- 
Cordialement, Daniel Cartron
« Un véritable homme du monde n'est jamais trop pauvre pour faire un cadeau à 
une femme. Il peut toujours lui donner la syphilis. »
François Cavanna - Le saviez-vous ?

---

From: Daniel Cartron <[email-masked]>
Date: Sun, 22 Mar 2015 20:35:07 +0100

> 5 -> ("txt" "txt" 6 "txt")

je verrai ça plus en détail demain mais il semble qu'à force de rater j'ai fini 
par réussir.

-- 
Cordialement, Daniel Cartron
« Je pompe donc je suis. »
Devise Shadock

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 23 Mar 2015 08:15:48 +0100

Le dimanche 22 mars 2015, 20:35:07 Daniel Cartron a écrit :
> je verrai ça plus en détail demain mais il semble qu'à force de rater j'ai
> fini  par réussir.

Pas tant que ça et je pige pas.

Petit exemple :

(define test '((5 . ("1" "2" 3 "4"))))
(display (cadr(assoc 5 test)))

j'obtiens bien 1 c'est ce que je veux.

ensuite ça va plus :

(define premier (cadr(assoc 5 test)))

me donne l'erreur suivante :
In procedure memoization in expression (define premier (cadr #))

??????

-- 
Cordialement, Daniel Cartron
« Quand on plante un oignon sous un saule, on n'obtient pas forcément un saule 
pleureur. »
François Cavanna - Le saviez-vous ?

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 23 Mar 2015 08:19:45 +0100

> In procedure memoization in expression (define premier (cadr #))
avec la fin ce serait mieux :

Bad define placement (define premier (cadr (assoc 5 test))).
-- 
Cordialement, Daniel Cartron
« Qui aime bien chatouille bien. »
François Cavanna - Le saviez-vous ?

---

From: PharoahS <[email-masked]>
Date: Mon, 23 Mar 2015 01:17:17 -0700 (MST)

Quand je tape ton code dans guile çà marche.
premier me renvoie "1'' alors que le display renvoyait 1

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/tableau-associatif-scheme-tp7582575p7582579.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 23 Mar 2015 09:23:07 +0100

> premier me renvoie "1'' alors que le display renvoyait 1

Ben dans guile je veux bien mais c'est dans lily que je veux que ça marche.
Du coup j'ai essayé set! à la place de define et ça marche mais pourquoi ???

-- 
Cordialement, Daniel Cartron
« Il faut prendre l'argent là où il se trouve, c'est-à-dire chez les pauvres. 
Bon d'accord, ils n'ont pas beaucoup d'argent, mais il y a beaucoup de 
pauvres. »
Alphonse Allais - Le sourire

---

From: Gilles THIBAULT <[email-masked]>
Date: Mon, 23 Mar 2015 15:37:01 +0100

> Ben dans guile je veux bien mais c'est dans lily que je veux que ça marche.
Tu n'aurais pas oublier les #  ?

%%%%%%%%%%%%%%%%%%

#(define test '((5 . ("1" "2" 3 "4"))))
#(display (cadr(assoc 5 test)))

#(newline)

#(define premier (cadr(assoc 5 test)))
#(display premier)

-- 
Gilles

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 23 Mar 2015 15:46:34 +0100

> Tu n'aurais pas oublier les #  ?

Merci mais non j'étais à l'intérieur d'une fonction donc si j'ai bien compris 
là on n'en a plus besoin.

Mais j'ai essayé autre chose, déclarer ma variable avec define avant, puis lui 
affecter la valeur avec set! et là ça marche mais je sais pas pourquoi, comme 
d'hab. Pour moi le scheme c'est vraiment tâtonnements et impro totale 
tellement je trouve ça incompréhensible :-D

Le pire c'est que je finis par y arriver !

-- 
Cordialement, Daniel Cartron
« Lorsqu'un diplomate dit oui, cela signifie peut-être. Lorsqu'il dit peut-
être, cela veut dire non... et quand il dit non, cela veut dire que ce n'est 
pas un diplomate. »
H. L. Mencken