[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Résolution de l'équation iScheme = infix (Scheme)
From: |
Bernard Barbier |
Subject: |
Re: Résolution de l'équation iScheme = infix (Scheme) |
Date: |
Thu, 9 Jun 2022 10:12:49 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 |
Bonjour,
Merci Jean de cette réponse.
Le 08/06/2022 à 23:22, Jean Abou Samra a écrit :
Bonjour,
Le 08/06/2022 à 19:08, Bernard Barbier a écrit :
Hello,
L'idée est excellente, mais il faudrait un truc comme bison et flex
pour parser le tout. Et ça, je ne sais plus faire...
La biblio donne beaucoup de réponses sur /Scheme to C/, mais pas
l'inverse, c'est que ça doit être graton comme on dit à Lyon.
Guile 2 (la version de Guile utilisée dans LilyPond 2.23) possède un
équivalent à Bison qui permet d'écrire un analyseur syntaxique sans
sortir de Scheme, ou plutôt deux : un générateurs d'analyseurs
LALR(1), comme Bison, et un pour les analyseurs PEG.
https://www.gnu.org/software/guile/manual/html_node/LALR_00281_0029-Parsing.html
https://www.gnu.org/software/guile/manual/html_node/PEG-Parsing.html
Par conséquent, il serait tout à fait envisageable de définir cette
syntaxe dans un fichier à \include, sans toucher au code de LilyPond.
Ça je ne savais pas et c'est exactement adapté.
Utile, je pense quand même : combien parmi les anciens (dont je fais
partie) et même la jeunesse ont appris LISP à l'école (et même
parfois sous la torture), juste pour le partiel de juin ?
Dès qu'on a compris que c'était un langage à pile, je pense qu'on a
compris beaucoup de choses (d'mon temps, on apprenait même la
notation polonaise inverse ! )
Du coup, Scheme devient /relativement/ listble, mais... de là à être
écrit... Donc utile, et ça vaudrait presque le coup d'y mettre un
thésard en info !
Oh, pas besoin d'un thésard : une fois la syntaxe définie, je ne crois
pas que l'implémenter devrait poser de problème majeur. Par contre, à
titre personnel, je serai plutôt concentré sur les grilles d'accords
cette semaine.
Comme je le disais à Jacques, je suis curieux des réponses sur ce fil
(merci pour celles déjà données). Comme l'apprentissage de Scheme est
un point qui cause régulièrement des difficultés, j'aimerais
comprendre où ça coince. Mon expérience personnelle est plutôt faite
d'un chemin tortueux pour comprendre le principe de la programmation
fonctionnelle, mais il est tout à fait possible que pour d'autres cela
soit plutôt compliqué au niveau de la syntaxe parenthésée et préfixe.
Même si je n'imagine pas abandonner moi-même un jour la syntaxe «
normale », ne serait-ce que parce que tout le code Scheme de LilyPond
est écrit comme cela, je serai intéressé de voir si cela aide les
débutants.
Bin... si on se pose la question d'analyse d'une partition (raccourci
rapide !) : on la lit en entier, on empile et on dépile à la double
barre... Scheme est exactement ce qu'il faut ! Après... il faut - je
pense - déjà avoir un brin de connaissances pour, comme disait Jean, ne
pas avoir peur du mur.
Alors, peut-être un tuto écrit comme tu aurais aimé qu'on te
l'enseigne... D'expérience, ça marche souvent bien. J'ai fait ça (il y a
longtemps) avec les machins bizarres comme les codes BCH, les corps de
Gallois, et d'autres trucs étrangeoïdeaux et j'avais eu de bons retours
des étudiants.
Juste en passant... Peut être qu'avec Bigloo Scheme ?...
Si quelqu'un a le temps de regarder...
À quoi fais-tu référence ? En lisant la table des matières de la
documentation de Bigloo Scheme, je n'ai rien trouvé qui parle de
syntaxe infixe.
Je me posais vraiment la question, sans apriori... tout bêtement, pour
savoir si c'était adapté. Je n'avais pas le temps de regarder, et tu as
répondu, donc merci !
Cordialement,
Jean
bien cordialement,
Bernard.
Re: Résolution de l'équation iScheme = infix (Scheme), Olivier Miakinen, 2022/06/09