Citation:
Envoyé par
HanLee
J'ai plus l'impression que tu es dans l'optique industrialisation grande échelle.
Et ce serait le cas? C'est vrai que j'ai plus l'habitude de travailler dans des programmes qui font plusieurs millions de lignes, qui tournent des semaines et ont besoin de plus de 4 GB de memoire pour contenir les donnees que sur des TP d'etudiants qui ne sont jamais execute que par leur auteur -- peut-etre une fois par le prof... Mais je ne m'attendais pas a ce que ce me soit reproche sur un forum qui se veut celui des professionnels -- meme si je n'ai jamais considere que c'etait le cas.
Citation:
C'est un peu comme, pour des petits ordres de grandeur, un algorithme O(n²) n'est pas plus critiquable qu'un algorithme O(n log(n)).
std::vector<> est plus performant que std::set<> pour des petites tailles.
Nous ne sommes pas reellement en train de parler d'algorithme et de complexite, mais d'architecture. Et un des aspects de l'architecture est qu'on cherche a se rendre independant des algorithmes pour permettre ce genre de compromis -- on peut meme par exemple envisager de passer d'un algo en N carre en un en N log N en fonction de la taille, parce que les constantes multiplicatives et les termes negliges font que c'est plus performant. Mais ce n'est pas le sujet ici.
Citation:
Sinon, quand je parlais de calcul formel, j'avais en tête des manipulations genre développer, substituer, factoriser, un truc qui se commande à la main.
Je lis plus une description d'entite qu'on modifie que de valeur sur lesquelles on fait des calculs.
Citation:
Et en Caml par exemple, les arbres que l'on manipule sont bien des valeurs (en même temps, ces arbres ont une définition purement mathématique, et on est dans un langage fonctionnel).
Mon experience avec les langages fonctionnels est principalement en Lisp. Chaque fois que j'ai essaye de programmer de maniere "fonctionnellement pure", j'ai le probleme qu'il me semble qu'on duplique les donnees pour en jeter l'original a la premiere occasion et ensuite faire a nouveau une copie. J'aime bien la possibilite de faire des raisonnements en utilisant que des choses non mutables -- mais j'ai du mal a voir comment ca passe a l'echelle pour ce sur quoi je travaille (et la je suis bien dans une optique industrielle). Et si tu utilises la mutabilite autorisee par Caml. tu es vraisemblablement aussi dans une optique d'entite.
Citation:
Pour des exercices ou petites applications à usage personnel, voire académique, je pense que ça se justifie parfaitement de manipuler des arbres de cette façon.
A part des TP, j'en suis pas sur du tout. A mon avis tu arriveras plus ou moins vite aux limitations de l'approche.