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

  FORUM HardWare.fr
  Programmation
  C++

  prog fonctionelle et C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

prog fonctionelle et C++

n°1899831
Glock 17Pr​o
Posté le 28-06-2009 à 14:30:55  profilanswer
 

Salut,
 
Je me demandais, j'arrive pas trop à trouver ça sur le net.. la prog fonctionelle en C++ par rapport à un vrai langage fonctionelle c'est ridicule ?  
ça tiens bien la route ?
 
Merci

mood
Publicité
Posté le 28-06-2009 à 14:30:55  profilanswer
 

n°1899833
Joel F
Real men use unique_ptr
Posté le 28-06-2009 à 15:04:02  profilanswer
 

En quel terme ?
Niveau expressivité y a ce quif aut dans boost::lambda et bientot boost::phoenix.
 
Niveau perf aucune idée.

n°1899837
Glock 17Pr​o
Posté le 28-06-2009 à 15:23:49  profilanswer
 

ui niveau expressivité

n°1899838
Glock 17Pr​o
Posté le 28-06-2009 à 15:29:08  profilanswer
 

intéréssant phoenix, dans la doc il est dit, qu'en C++ on peut faire les principaux trucs qu'on peut faire en FP, mais pas tout non plus donc

n°1899840
Un Program​meur
Posté le 28-06-2009 à 15:58:37  profilanswer
 

A quoi t'attendais-tu?  Je ne suis pas sûr qu'il y ait un langage fonctionnel qui permette de faire tout ce qu'on associe à la programmation fonctionnelle.  
 
Si tu n'as pas de demande précise et que tu veux explorer ce que c'est, je te conseille d'apprendre un langage fonctionnel (mettons Haskell si tu veux un nom, il a l'avantage d'être suffisemment éloigné de C++ qu'il y a peux de risques que tu ne vas pas te mettre à faire du C++ à Haskell, risque qui est plus important avec un lisp ou un langage de la famille ML).
 
En passant, j'ai du mal à voir comment faire en C++ des choses comme l'évaluation paresseuse ou les continuations sans un support intrinsèque du langage.  Ou plutôt, je vois comment le faire, mais c'est lourd et pas pratique à utiliser.  Et je ne parle pas de ce qui dépend d'une inférence de types (technique qui n'est pas fondamentalement liée à la programmation fonctionnelle même si c'est dans les langages fonctionnels que se trouvent les langages l'ayant poussée le plus loin).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1899844
Joel F
Real men use unique_ptr
Posté le 28-06-2009 à 16:22:32  profilanswer
 

la lazy evaluation c'est deja partiellement gérée par boost::Fusion.

n°1899861
Glock 17Pr​o
Posté le 28-06-2009 à 19:07:27  profilanswer
 

Un Programmeur a écrit :

A quoi t'attendais-tu?  Je ne suis pas sûr qu'il y ait un langage fonctionnel qui permette de faire tout ce qu'on associe à la programmation fonctionnelle.  
 
Si tu n'as pas de demande précise et que tu veux explorer ce que c'est, je te conseille d'apprendre un langage fonctionnel (mettons Haskell si tu veux un nom, il a l'avantage d'être suffisemment éloigné de C++ qu'il y a peux de risques que tu ne vas pas te mettre à faire du C++ à Haskell, risque qui est plus important avec un lisp ou un langage de la famille ML).
 
En passant, j'ai du mal à voir comment faire en C++ des choses comme l'évaluation paresseuse ou les continuations sans un support intrinsèque du langage.  Ou plutôt, je vois comment le faire, mais c'est lourd et pas pratique à utiliser.  Et je ne parle pas de ce qui dépend d'une inférence de types (technique qui n'est pas fondamentalement liée à la programmation fonctionnelle même si c'est dans les langages fonctionnels que se trouvent les langages l'ayant poussée le plus loin).


 
donc infiné le support du paradigme fonctionnelle en C++ est très basique , si je te suis bien

n°1899870
Un Program​meur
Posté le 28-06-2009 à 19:37:15  profilanswer
 

Le support dans langage (du moins C++O3) est quasiment inexistant.  Par des bibliothèques, on arrive à fournir certaines choses, au prix d'une certaine complexité et d'une certaine lourdeur d'utilisation et de perf.  C++0X devrait offrir un peu plus avec un support dans le langage, donc avec un peu moins de compromis (mais il faut s'intégrer avec le reste du langage, donc il y a toujours des compromis).


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1899873
el muchach​o
Comfortably Numb
Posté le 28-06-2009 à 19:43:30  profilanswer
 

Le D est nettement plus adapté pour adopter certaines pratiques de PF, même si ça reste un langage essentiellement impératif.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°1899876
Joel F
Real men use unique_ptr
Posté le 28-06-2009 à 19:50:18  profilanswer
 

Un Programmeur a écrit :

Le support dans langage (du moins C++O3) est quasiment inexistant.  Par des bibliothèques, on arrive à fournir certaines choses, au prix d'une certaine complexité et d'une certaine lourdeur d'utilisation et de perf.  


 
Euh, à part FC++ qui etait atroce, lambda et fusion ont des perfs plus que corrects

mood
Publicité
Posté le 28-06-2009 à 19:50:18  profilanswer
 

n°1899879
Un Program​meur
Posté le 28-06-2009 à 20:12:37  profilanswer
 

Mon point est qu'une implémentation bibliothèque de la PF en C++ va devoir choisir un point de compromis entre complexité d'implémentation, lourdeur d'utilisation, fonctionnalités et performances.  Tu peux faire effectivement le choix de limiter les fonctionalités et de complexifier l'implementation (a priori je doute que la facilité d'utilisation intervienne) pour garder de bonnes performances.  Il est toujours possible aussi d'essayer de trouver une nouvelle technique d'implémentation qui augmente les points atteignables.

 

Quelque chose de plus intégré au langage (comme les lambda de C++0X) a plus de souplesse, mais est toujours plus contraint que pour un langage conçu pour être fonctionnel (la bonne technique pour concevoir un langage supportant les paradigmes fonctionnels et impératifs, c'est de partir d'un noyau fonctionnel et de l'étendre).

Message cité 1 fois
Message édité par Un Programmeur le 28-06-2009 à 20:15:27

---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°1899903
Joel F
Real men use unique_ptr
Posté le 28-06-2009 à 21:56:08  profilanswer
 

Un Programmeur a écrit :


Quelque chose de plus intégré au langage (comme les lambda de C++0X) a plus de souplesse, mais est toujours plus contraint que pour un langage conçu pour être fonctionnel (la bonne technique pour concevoir un langage supportant les paradigmes fonctionnels et impératifs, c'est de partir d'un noyau fonctionnel et de l'étendre).


 
Tout a fait d'accord


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

  prog fonctionelle et C++

 

Sujets relatifs
Diriger X en C ?Comment supprimer un dossier en C++
[C#] threads et communication[C#] Questions de débutant...
C# et langages de script[Edit] Analyseur de code pour C++
Traduction d'un algorithme en CProgrammation C++ p4
Syntaxe étrange en C++ avec GCC (résolu)Développeurs passant à C#, relativement néophytes en POO
Plus de sujets relatifs à : prog fonctionelle et C++


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