ben non, c'est du typage fort... on n'a qu'à définir un type pour "fusionner" ses deux types, et le tour est jouéCitation:
Le fait que l'on ne puisse pas écrire par exemple une fonction qui prenne un nombre en argument (soit entier, soit flottant...) me semble être une limitation du système de typage.
c'est donc faisable, mais plus long :P
c'est une conséquence de leur inférence de type... si l'on typait à la main, on pourrait le faire ;)Citation:
Le fait que chaque structure doive avoir des noms de champs différents (et quand on en a beaucoup, c'est pénible), me semble en être une autre.
si toutes les fonctions ont la meme signature, je ne vois pas pourquoi ça ne marcherait pas...Citation:
Il y a aussi le fait que l'on ne puisse pas écrire une liste de fonctions.
ça sert à éviter l'indétermination... si tu veux un nombre variable de paramètres, tu passes un vecteur en argumentCitation:
Le fait que l'on ne puisse pas écrire de fonction avec un nombre variable d'arguments est aussi une limitation.
encore une fois, c'est possible... fait juste le prendre en compte à la conception :P
pas clair... :roll:Citation:
Comment écrire aussi une fonction qui renvoie le complément d'une autre fonction ?
ben tu passes le tuple sous forme de vecteur... et ça marche, juste un détail à la conceptionCitation:
Comment écrire une fonction prenant un tuple en argument et renvoyant son premier élément ?
définir un type adéquate et le spécifier... sinon il généralisera à intCitation:
Comment écrire une fonction prenant en argument un entier positif ? Ou un entier compris entre 10 et 20 ? Même Pascal permet de faire ça !
point déjà traité... :roll:Citation:
Le fait que le système de typage interdise la surcharge est aussi une limitation : OCaml doit être l'un des rares langages qui "oblige" à mettre l'information de type dans le nom même de la fonction : print_int, print_float, print_string... abs, abs_float...
------------------------------------------------------------------------
Bon je pense qu'on a fait le tour de la question OCaml vs F#, qui ne sont pas très éloignés... :roll:
Il serait peut-etre temps de changer de sujet... ou de faire le meme genre de comparatif avec d'autres langages ;)