Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1199 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Lisp] (Scheme) EXPR->Lamba

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Lisp] (Scheme) EXPR->Lamba

n°869254
burgergold
5$? va chez l'diable!
Posté le 09-10-2004 à 23:34:02  profilanswer
 

je suis incapable d'entamer le problème suivant (au moins de faire le define correct :D)
 
Définissez une fonction EXPR->LAMBDA qui reçoit comme argument une expression arithmétique en notation préfixe et retourne une fonction correspondant à l'expression. Pour simplifier le problème, vous pouvez assumer que x est la seule variable apparaissant dans l'expression.
 
ex1:
 

(EXPR->LAMBDA '(+ x (* 3 (/ (* x x 12) (cos x))) (sin (^ x x))))
===>
#<procedure:...cours\solution.scm:120:2>


 
ex2:
 

((EXPR->LAMBDA '(+ x (* 3 (/ (* x x 12) (cos x))) (sin (^ x x)))) 4)
===>
-878.213346158752


 
donc comme je disais, je sais pas trop comment la procédure doit être défini. Ok, elle recoit 1 paramêtre (appelons le exp) mais celui-ci doit être traité comme un lambda :/
 
si quelqu'un y voit plus clair

mood
Publicité
Posté le 09-10-2004 à 23:34:02  profilanswer
 

n°869312
antsite
Je me souviens
Posté le 10-10-2004 à 10:14:50  profilanswer
 

(define (expr->lambda exp)
   (lambda x exp))
 
alors je sais pas si ça marche, si ça marche pas, il doit bien exister dans ta version de scheme un opérateur pour forcer l'évaluation de exp dans (lambda ...), du genre @ ` ou un truc du style.
la syntaxe de lambda je crois que c'est ça, en fait le x c'est l'argument, je sais plus si on le met entre paranthèses...


Message édité par antsite le 10-10-2004 à 10:15:15
n°869352
burgergold
5$? va chez l'diable!
Posté le 10-10-2004 à 11:56:04  profilanswer
 

à priori c'est un bon point de départ, en utilisant l'exemple 1, ca me retourne bien une procédure
 
jvais tenter de me débrouiller pour l'exemple 2, merci :)

n°869482
burgergold
5$? va chez l'diable!
Posté le 10-10-2004 à 16:13:41  profilanswer
 

hum bin jusqu'ici j'ai pas trop trop de résultat
 
l'exemple 2 ne me retourne que l'expression, il ne l'évalue pas avec la valeur donné (et pas le droit d'utiliser eval)
 
est-ce que le problème qu'on me demande se résout par ce qui est appelé la currification?

n°869689
burgergold
5$? va chez l'diable!
Posté le 10-10-2004 à 21:47:27  profilanswer
 

up :~(

n°870184
burgergold
5$? va chez l'diable!
Posté le 11-10-2004 à 15:19:10  profilanswer
 

zup

n°870552
burgergold
5$? va chez l'diable!
Posté le 11-10-2004 à 19:53:15  profilanswer
 

ouais jai pas mal réussi à tout faire
 
me reste plus qu'à supporter pour l'addition et la multiplication les cas n-aires
 
ex: (+ 3 4 5) -> présentement mon code ne fait que l'addition des 2 premiers :/


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Lisp] (Scheme) EXPR->Lamba

 

Sujets relatifs
PPCM en Scheme (Lisp)Scheme. Affichage inattendu d'une apostrophe.
[LISP] j arrive pas a tranformer un résultat en chaine de caractèreurgent ! qsort en lisp
une FND en une FNC lisp[Scheme] GUI : tout intégrer dans un let ? des problèmes s'ensuivent..
[Scheme] let* avec canvas% : quand get-client-size disponible ?[lisp] petite question sur implodech
[scheme] somme des elements d'une liste, qu'est ce qui va pas?? 
Plus de sujets relatifs à : [Lisp] (Scheme) EXPR->Lamba


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR