D'un autre côté, tu as beaucoup de fonctionnalités disponibles en plus
(certaines viennent de Caml, d'autres d'ailleurs, et certaines sont assez
innovantes).
La comparaison reste délicate car ça concerne dans fonctionnalités qui ne sont pas dans C#, mais dans l'ensemble le style de programmation que F# t'incite à adopter offre beaucoup plus de sûreté. Certaines constructions (comme le
pattern matching) vérifient que ton code gère bien tous les cas ; si tu oublies un cas ou si un cas est traité en double, le compilateur te prévient et te donne un exemple de problème. La valeur
null est quasiment enlevée (sauf pour l'interopérabilité) du langage, au profit d'un type option. De cette façon, on ne peut pas oublier de traiter le cas où il n'y a pas de valeur.
Le système de typage est aussi beaucoup plus fin et tu peux même indiquer
l'unité de mesure de tes valeurs numériques. Le compilateur t'interdit alors d'additionner des mètres et des secondes, mais tu peux les diviser (et le compilateur déduit tout seul l'unité du résultat). Le compilateur est aussi plus strict et empêche bon nombre de conversions implicites (on ne peut pas mélanger des int et des float par exemple).
(Comme la conversation dévie, elle peut être continuée dans le forum F#)
Partager