Subject: scheme - variables globales

From: Daniel Cartron <[email-masked]>
Date: Tue, 04 Jun 2013 19:46:30 +0200

Bonsoir,

Je me heurte de façon récurente à un problème qui commence à furieusement 
m'agacer.

Je définis mes fonctions scheme dans un fichier ly séparé que j'appelle avec 
un include.

Je définis une 20aine de variables dans un fichier ly séparé (ça fait en tout 
environ 500 lignes de code et je n'ai pas envie d'encombrer mon code avec ça) 
que j'appelle avec un include.

Je teste le tout dans un fichier ly avec des tas de display pour voir ce qui 
se passe. Une fois une nouvelle fonction opérationnelle, je la déplace dans le 
fichier des fonctions.

Ce que je n'arrive pas à comprendre est que j'ai des tas de Unbound variable 
alors que si je met la soit-disant Unbound variable dans un display elle est 
affichée correctement.

Mes variables sont déclarées avec des #(define variable '(truc machin))

Est-ce suffisant pour que ce soit rechargé à chaque compilation ou j'ai la 
mauvaise syntaxe ? Ce qui est curieux c'est que certaines variables sont 
correctement trouvées et d'autres non...

Merci pour vos lumières.

-- 
Cordialement, Daniel Cartron
« Pour qu'il y ait le moins de mécontents possibles il faut toujours taper sur 
les mêmes. »
Devise Shadock

---

From: Daniel Cartron <[email-masked]>
Date: Wed, 05 Jun 2013 07:59:06 +0200

Le mardi 4 juin 2013 19:46:30 Daniel Cartron a écrit :
> Je définis une 20aine de variables dans un fichier ly séparé (ça fait en
> tout environ 500 lignes de code et je n'ai pas envie d'encombrer mon code
> avec ça) que j'appelle avec un include.
> 
> se passe. Une fois une nouvelle fonction opérationnelle, je la déplace dans
> le fichier des fonctions.
> 
> alors que si je met la soit-disant Unbound variable dans un display elle
> est affichée correctement.
> 

J'ai résolu une partie de mes problèmes (à force de modifier mes 
configurations de clavier j'avais oublié de mettre à jour un truc qq part).

Il m'en reste un qui me laisse perplexe. Comme écrit plus haut j'ai déplacé 
mes fonctions dans un fichier séparé, et ça marche pour toutes sauf une, dès 
que je la retire du fichier de travail ça plante...

La fonction est la suivante :
#(define (list-btn nref)
		(map cdr
			(filter
				(lambda (pair) (equal? (car pair) nref) )
				kbd )))
Quoique je ne sais si ça peut aider que je la copie ici...

Si qqun a une idée ?...

-- 
Cordialement, Daniel Cartron
« La dot est un présent fait au futur pour dissimuler l'imparfait. »
Willy

---

From: elmamyra <[email-masked]>
Date: Wed, 5 Jun 2013 01:00:07 -0700 (PDT)

Daniel Cartron-2 wrote
> que je la retire du fichier de travail ça plante...

Vérifie l'ordre de tes "\include". Si tu en as plusieurs il est possible que
tu appels cette fonction alors qu'elle n'est pas encore inclue. Sinon je ne
vois pas.

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

---

From: Daniel Cartron <[email-masked]>
Date: Wed, 05 Jun 2013 10:37:03 +0200

> tu appels cette fonction alors qu'elle n'est pas encore inclue. Sinon je ne

J'y avais bien pensé mais ça n'est pas ça.

J'ai refait deux fichiers où j'ai mis le strict minimum pour les envoyer, et 
du coup comme il y a moins de code je le vois mieux, et il y avait tout 
bêtement un s au milieu du code de la fonction dans le fichier à inclure...

Un Ctrl S où j'ai appuyé trop vite sur le S surement...

Désolé pour le bruit inutile mais celle-là n'était pas évidente à débusquer...

-- 
Cordialement, Daniel Cartron
« Je suis un contemplateur fervent de l'effort d'autrui. Un paresseux, c'est 
tout simplement quelqu'un qui ne fait pas semblant de travailler. »
Tristan Bernard