programmation d'une calculatrice avec clojurescript: besoin d'aide

30 views
Skip to first unread message

arbroween

unread,
Oct 6, 2015, 2:49:37 PM10/6/15
to clojure-fr
Bonjour à tous, j'ai besoin de votre aide en urgence.

Cela fait quelques temps que je m'intéresse au langage clojure et j'ai lu de nombreux tutoriels sur le langage.
Mais c'est la première fois que je mets mon savoir en pratique et je n'ai pas encore participé dans la communauté.

Je suis étudiant et dans le cadre de mon travail de maturité, j'ai décidé de programmer une calculatrice en clojurescript et reagent.
J'ai déjà écrit pas mal de code mais voilà, j'ai un problème que je ne comprends pas et je ne parviens pas à faire fonctionner ma calculatrice :
l'interface s'affiche bien dans le navigateur web, mais lors qu'on clique sur un bouton,
au lieu d'envoyer la touche appuyée à la calculatrice afin qu'elle calcule puis mets à jour l'affichage, elle affiche une erreur dans le navigateur et ne fait rien.

D'après mes recherches, je crois que cela viendrait du fait que le programme ne parvient pas à appeler la fonction "insert-token" se trouvant dans le fichier "ast.cljs" depuis le fichier "core.cljs".
J'ai donc essayé d'interagir avec le programme par la REPL et quand je regarde le namespace "ast" la fonction "insert-token" existe et est exportée.
Mais quand j'essaie de l'appeler avec cette même REPL, elle m'affiche la même erreur que dans le navigateur.
Donc soit il y a une erreur de ma part (ce qui est certainement le cas), soit il y a un problème dans le compilateur clojure lui-même (ce qui est très peu probable).

Peut-être que je suis parti sur une fausse piste avec cette fonction "insert-token", mais c'est tout ce que j'ai pu trouver comme explication.

Je mets alors en pièce jointe les sources que j'ai écrit pour mon projet dans un fichier ZIP.
J'apprécierai alors vraiment votre aide, car je n'ai pas une grande expertise en clojure, mais je pense qu'il doit y avoir une solution.

Un grand merci d'avance pour votre aide :-)
TM-Calculatrice-06-10-2015.zip

Hiram MADELAINE

unread,
Oct 6, 2015, 3:37:50 PM10/6/15
to clojure-fr
Bonsoir Julien,

Tu as un problème de parenthèse ;-)
Dans ton namespace  : com.dreamsoft.calculator.ast
la fonction
insert-open-parenthesis
inclut la définition des deux fonctions suivantes : insert-operator et insert-token
Voilà pourquoi insert-token n'est pas définie.

As tu la possibilité de partager le code sur github ou autre afin qu'on puisse plus facilement t'aider ?
Connais tu figwheel ? Cela permet de développer son application de façon itérative.

En tout cas bravo de te lancer dans cette calculatrice en ClojureScript !

bonne soirée

Hiram



--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "clojure-fr".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse clojure-fr+...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.



--
Hiram MADELAINE
Eloquent Logic
96, rue La Fayette 75010 Paris
+33 6 11 51 37 71

arbroween

unread,
Oct 7, 2015, 12:39:00 PM10/7/15
to clojure-fr
Merci beaucoup pour votre réponse rapide, ça marche !
En effet, il s'agit d'une bête erreur de parenthèse de ma part :)

Merci infiniment, vous êtes géniale, depuis le temps que je désespérais face à ce problème, merci beaucoup !!!
J'était presque au point de laisser tout tomber, mais maintenant je suis plus motivé que jamais.

Concernant vos questions, je connais en effet figwheel, je voulais d'ailleurs l'utiliser au départ dans mon projet, mais je n'ai jamais réussi à le faire fonctionner.
J'utilise déjà git pour gérer mon projet de mon côté (cela ma déjà bien sauvé la vie).
Je penserai à votre conseil la prochaine fois et je verrai quand j'aurai un peu plus de temps pour le mettre sur Github, mais pour le moment je vais essayer de rattraper le retard accumulé à cause de ce problème.

Bonne soiré et merci encore ;-)

Hiram MADELAINE

unread,
Oct 7, 2015, 12:47:34 PM10/7/15
to clojure-fr
Je t'en prie voyons :-)
Surtout n'hésite à solliciter de l'aide à nouveau, ce serait dommage de rester bloqué trop longtemps.


Je vais essayer de rendre ton projet compatible avec figwheel afin que tu goûtes au plaisir suprême de l'interactivité.
Bonne soirée

arbroween

unread,
Oct 20, 2015, 8:39:45 AM10/20/15
to clojure-fr
Bonjour,

Depuis mon dernier poste, j'ai fait pas mal de changements dans ma calculatrice, notamment dans la manière dont elle calcule les résultats et la représentation des nombres.
Mais maintenant, je suis de nouveau coincé avec un problème que je ne comprend pas non plus :

Lorsque l'on clique sur un bouton de ma calculatrice, celle ci affiche une erreur dans la console comme quoi "loc.call is not a function" ou "Cannot read property 'call' of null" ;
de plus, cette erreur a comme origine soit la fonction "clojure.zip/branch?" soit "clojure.zip/node".

Je ne suis pas sûr de comprendre pourquoi est-ce que cette fonction de la librairie standard pose problème et je n'arrive pas à trouver l'origine de cette erreur car il n'y a pas de pile d'appel disponible.

Peut-être que quelqu'un de plus expérimenté verra mieux que moi le pourquoi et l'origine de ce problème, car je n'ai pas vraiment le temps de tester/vérifier chaque appel (directe ou indirecte) à ces deux fonctions dans mon code.

Malheureusement, je n'ai pas réussi à envoyer mon code sur github, donc désolé mais il se trouve en pièce jointe.

Merci beaucoup d'avance pour votre aide :)
TM-Calculatrice-20-10-2015.zip
Reply all
Reply to author
Forward
0 new messages