Zephyr (./5504) :
very > heu... on écrit 'a dans un cas ce qu'on écrit dans l'autre et la syntaxe reste exactement la même, c'est ça que tu considères comme une façon "bien plus belle" de faire ? pour moi c'est rigoureusement pareil...
heu...non. Je te passe les arguments de fonds (c'est complètement intégré normalement par construction même, pas un bricolage par dessus. C'est bien plus propre. Mais bon on pourrait faire tout en débat C++/CAML comme ça), et bien que j'ai volontairement pris un cas où c'est très semblable, même au niveau syntaxique c'est pas toujours pareil: pour faire simple on est pas toujours obligé d'expliciter dans un cas (CAML. Comme pour le typage normale quoi) alors qu'on l'est dans l'autre ( C++ ). (Par exemple dans des fonctions génériques sur les listes, si tu ne précise rien à la main, il va prendre, en gros, le plus gros cas possible. )
D'un point de vue pratique c'est très différent aussi: en C++ c'est une surcouche qui va décliner les différentes versions avant la compilation 'normale' ( je dis une bêtise ? ), en CAML (et je pense bien d'autres langages fonctionnels typés polymorphes ) la fonction n'est pas compilé n fois.. ça permet par exemple d'utiliser une fonction polymorphe déjà compilé avec possiblement une infinité d'arguments sans la recompiler une seule fois..