Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Vous avez demandé le commentaire #706793.

Retourner sur le contenu associé.

Re: l'INRIA ne soutient pas suffisamment OCaml

Posté par Yusei (page perso, ) le 30/04/2006 à 16:27. (lien). Évalué à 6.

il ne s'agit que des opérateurs numériques et il suffit de rajouter un point pour la version flottantes, c'est quand même pas trés dur à comprendre et à retenir.

Non, c'est pour tous les opérateurs, sauf ceux de comparaison qui sont polymorphiques. Le langage et la lib de base fournissent peu d'opérateurs, justement parce que l'absence de polymorphisme rendrait pénible d'avoir 27 variantes de "+". Du coup, tu as +, +. et +/ pour additionner les entiers, les flottants et les Nums, et pour les autres types il faut utiliser les fonction du style Type.add.

Dans le même style, et même si ce ne sont pas strictement des opérateurs, tu dois mémoriser que pour décrire une liste c'est [ ... ], pour décrire un vecteur c'est [| ... |]. Pour accéder à un élément d'un vecteur, on utilise .(indice), et pour accéder à un élément d'une chaîne, .[indice], etc.

Chaque point pris individuellement n'est pas dur à mémoriser, c'est la somme des détails qui est lourde. En Ruby, pour additionner deux objets on utilise "+", et pour accéder à un élément dans un truc qui en possède plusieurs, on utilise [indice]. Je comprend la justification derrière le choix d'OCaml, mais je trouve quand même la version ruby plus agréable.

exemples ? Je ne vois pas trop de quoi tu veux parler ...

Difficile de faire une liste précise, je ne mémorise pas les exceptions, c'est bien pour ça qu'elles me posent problème :)

Il me vient, à froid:
- tous les exemples ci-dessus.
- le produit cartésien, pour lequel on peut omettre les parenthèses lorsque ce n'est pas ambigu pour le compilateur, mais j'ai rencontré des cas où c'était ambigu pour mon cerveau limité.
- il y a d'autres cas où les parenthèses peuvent être omises, et ça n'aide pas toujours la lisibilité. Je l'ai dit, j'aime bien le Lisp :)
- Il y a plusieurs manières de déclarer une fonction. Je n'en ai retenu qu'une, mais pour débugguer le code des autres il faut toutes les connaîtres.
- Si on veut faire de l'impératif, on peut délimiter les instructions qui renvoient unit par des points virgule, ou bien on peut écrire let () = expression in ... (il y a peut-être une différence entre les deux, mais je ne la connais pas).

J'ai la flemme d'en chercher d'autre, je n'ai pas pour but de démolir OCaml. Puisque je m'en sers, c'est que je trouve les obstacles surmontables, mais quand même pénibles ;)

[ Répondre ]