Hier, j'ai passé pas loin d'une heure sur cette !?#@$ fonction 'eval' car:
- certaines FAQ ne sont pas très à jour Why is there no EVAL in Scheme?
- je n'ai pas réussi à trouver d'exemple de 'eval'...
Type: Messages; Utilisateur: jack-ft
Hier, j'ai passé pas loin d'une heure sur cette !?#@$ fonction 'eval' car:
- certaines FAQ ne sont pas très à jour Why is there no EVAL in Scheme?
- je n'ai pas réussi à trouver d'exemple de 'eval'...
Finalement, j'ai fait un 'sudo apt-get install mit-scheme'. :ccool:
J'ai recopié les fonctions que j'avais proposées.
J'ai choisi que les fonctions trec-* (comme trec-if et trec-begin) reçoivent la...
Bien sûr que tu peux l'avoir: il suffit que tu l'écrives! ;)
ou que quelqu'un d'autre l'écrive!
Pour avoir quelque chose de vraiment complet, il faut probablement y passer pas mal de temps. Je...
Non, pas du tout!
La fonction 'trec-expr' doit retourner #t si l'expression scheme passée en paramètre est récursive terminale (vis à vis de la fonction passée) et doit retourner #f si elle est...
Je suis pas sûr que ce soit une très bonne idée...
L'ensemble du code peut donner l'impression d'un poème dont certains vers sont de parfaits alexandrins tandis que d'autres semblent avoir été...
Dommage! Il aurait peut-être fallu commencer plus tôt!
C'était bien essayé (au hasard?), mais ce n'est pas tout à fait ça...
Comme indiqué précédemment, toutes les fonctions 'trec-*' doivent retourner un booléen et non 0 ou 1.
Le premier argument...
Ben, c'est écrit dans mon dernier post:
Toutes les fonctions 'trec-*' retournent #f si elles ont détecté un appel de 'fun' non récursif terminal, #t sinon.
De plus, chaque fonction...
Tout le code qui est dans les forums est libre de droits (sauf mention contraire).
Il faut effectivement que tu comprennes le code pour te l'approprier!
Le mieux serait que tu relises tout et...
Effectivement, 'eq' est une fonction lisp!
C'est la fonction de comparaison de 2 symboles.
Il faut la "traduire" en scheme: peut-être 'eq?' ou 'equal?' ou '='... à vérifier...
Ben oui. ça...
Je ne veux pas faire tout l'exercice à ta place!
Voici un petit bout du parser.
Il traite un 'begin' implicite.
Il doit être, en gros, le premier appel à qui l'on passe:
- le nom de la fonction...
Quelle version de scheme utilises-tu?
Concernant le 'begin' implicite, cette référence est bien meilleure:...
Totalement inutile: après reformatage, c'est juste un parser d'expressions arithmétiques.
Presque...
Dans:
Pour compter le nombre d'occurrences de 'x' dans un arbre 'A' (sans l'aplatir):
si 'A' = 'x' c'est 1
sinon si 'A' n'est pas un 'cons', c'est 0 (on ne traite pas les...
:google: est votre ami:
http://www.cs.bham.ac.uk/research/projects/poplog/paradigms_lectures/index_scheme.html...
Merci beaucoup d'avoir fait l'effort d'utiliser la balise CODE!
Du coup, ça me donne presque envie de répondre...
Exercice (transformer le pseudo-code en code):
Pour compter le nombre...
Désolé, comme tes messages n'utilisent pas les balises QUOTE et CODE, j'ai beaucoup de mal à les lire et je préfère faire un meilleur usage de mon temps et de mon énergie.
Merci d'éditer tes...
Je confirme! Ce n'est pas un problème facile qu'il vous a donné!
Petite précision: il me semble que 'define' est spécifique de scheme et non de lisp.
Je n'ai jamais fait de scheme. En...
C'est pas gagné! :(
Pour améliorer la lisibilité des messages, pourrais-tu:
- utiliser la balise CODE en cliquant sur le '#' dans la barre d'outils du message
- mettre un point ou un return à la...
:tagcode:
Afin de faciliter la lecture de ton message, peux-tu l'éditer en ajoutant la balise CODE (le '#' dans la barre d'outils) et en corrigeant les erreurs de frappe?
Bonjour.
Vous n'avez pas vu le 'not' ???
(define (corps df); pas encore vu en cours ???
(if (not (pair? df)) '()
(caddr df)))
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.