lilypond-user-fr
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]