Programmation FonctionnellerrannolOrdre Applicatif et Formes OrepaetrsSpéciales…pia…Gilles Enée – LS4illné LUniversité des Antilles Guyaneivité AesyaMécanisme d’Evaluation d’un Ma’EunnAppel de Fonctionee c Supposons que l’on demande l’évaluation uoue dan’éatd’un appel de fonction de la forme :’up fio lam(f a b c)a Où a, b et c sont des expressions ù eosrensquelconques.ueq. ATTENTION, f doit être une fonction, pas TT, f ênc pun mot-clé comme define, mais plutôt une n -cmde, pt uprimitive comme sin ou une fonction que rime mn necquvous avez défini.ouefinMécanisme d’Evaluation d’un Ma’EunnAppel de Fonctionee cMécanisme d’Evaluation d’un Ma’EunnAppel de Fonctionee c A l’aide du prédicat « procedure? » nous l déd «cee?ouavons demandé si les mots clés définis voedletss isétaient des procédures.ta dror Notez la différence entre sin qui est une oa re esii enprimitive du langage et fac une définition rime ne c dtiofaite par l’utilisateur.itr sar. Les booléens en Scheme s’écrivent #t et esolé ech sivt #f.f.Mécanisme d’Evaluation d’un Ma’EunnAppel de Fonctionee c Attention, define n’est pas un mot clé mais une tte, e p mlé uforme spéciale (Testez en TP si c’est une rmé (Tz sstprocédure)rore Revenons à (f a b c)evnsa Les quatre expressions f, a, b et c vont être évaluées Latres fet t êalu[[dans uunn ordre iinnconnu]],, donnaannt des vvaaleurs FF,, A, B et C. La valeur F doit être un objet de type procédure ea ...
Programmation Fonctionnelle Ordre Applicatif et Formes Spéciales…
GillesEnée–LS4
UniversitédesAntilles Guyane
Mécanisme dEvaluationdunAppel de Fonction
Supposons que lon demandelévaluation dunappel de fonction de laforme: (f a b c) Oùa,bet c sont des expressionsquelconques. ATTENTION, fdoitêtreunefonction, pas unmot-clé commedefine, mais plutôt une primitivecommesinouunefonction que vousavez défini.
Mécanisme dEvaluationdunAppel de Fonction
Mécanisme dEvaluationdunAppel de Fonction
A laidedu prédicat «procedure?» nous avonsdemandésilesmotsclésdéfinisétaientdesprocédures.
Notez ladifférenceentresinqui est une primitivedulangageetfacune définition faiteparlutilisateur.
Lesbooléens enSchemesécrivent #t et #f.
Mécanisme dEvaluationdunAppel de Fonction
Attention,define nest pas un mot clé mais une forme spéciale (Testez en TP si cest une procédure) Revenonsà (f a b c) Les quatreexpressions f,a,betcvontêtreévaluées [dans unordreinconnu],donnantdes valeurs F, A, B et C. La valeurFdoitêtreunobjetdetypeprocéduresinon il y a erreur. La procédureFest«appliqué » auxvaleursA, BetCpour fournirlavaleurfinalerecherchée.
Mécanisme dEvaluationdunAppel de Fonction
Vousnoterezquepourdécrirelévaluation de(fabc), nous demandonslévaluation des sous-expressions:ilsagitdoncdune récurrence…
Comment la procédure F est-elle appliquée?
Mécanisme dEvaluationdunAppel de Fonction
Deuxpossibilités: Si F est une primitive comme max, elle fonctionne comme on le pense, elle calcule le maximum. Si F provient de lévaluationdunelambda-expression, comme (lambda (x y z) (+ x (* 2 y z))), on peut imaginer que les paramètres x y et z vont être remplacés par les valeurs A, B et C, puis que lexpression (+ A(*2B C))vaêtre évaluée pour fournir la valeurrecherchée.
Mécanisme dEvaluationdunAppel de Fonction
Il ne sagitque dun modèle de «substitution » commevous avez pu le faire en «ArchitecturedesOrdinateurs». Cetordre decalcul se nomme «lordre applicatif»dévaluation. EnScheme,une fonction peut aussi être calculée. Vouscomprenez un peu mieuxpourquoidefine nestpas une fonction : Sinon en écrivant (definex1)onchercherait à évaluer x cequi seraitabsurdepuisquejustement on est en traindedonnerunevaleurau symbole x.