caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Diego Olivier Fernandez Pons <Diego.FERNANDEZ_PONS@etu.upmc.fr>
To: caml-list@inria.fr
Subject: [Caml-list] Peut on unifier foncteurs et objets ?
Date: Fri, 6 Aug 2004 12:14:59 +0200 (DST)	[thread overview]
Message-ID: <Pine.A41.4.44.0408061101010.618570-100000@ibm1> (raw)

    Bonjour,

Il y a régulièrement sur la liste Caml des discussions au sujet des
mérites respectifs des foncteurs par rapport aux objets et des
possibilités d'extensions (méthodes polymorphes, modules de première
classe, etc.)

La redondance entre le système de modules/foncteurs et celui des
objets n'est pas à mon avis tant le problème. Après tout le
programmeur Caml doit déjà se décider entre :
- structures de données éphémères ou persistantes
- boucles ou récursion
- f = fun x y -> ou f x = function ... ->
- if ou match ... with
- fonctions récursives à plusieurs arguments ou application partielle
(ex. map)
- types somme ou variantes polymorphes
- types somme ou enregistrements
- etc.

Ce qui est nettement plus ennuyeux quand on passe du premier jet de
code (sous forme de module) à un foncteur, puis on change pour un
objet (pensant utile de changer son comportement à l'exécution), puis
on revient au foncteur (car non, c'est mieux d'abstraire), etc. c'est
qu'on a _vraiment_ l'impression de ne faire que du copier/coller.

Mes foncteurs c'est mon module initial dans lequel j'ai remplacé
'compare' par 'M.compare', mes objets c'est mon module initial auquel
j'ai ajouté une capsule ne contenant que des 'method f = {< obj = f
obj >}'

Je ne connais certainement pas grand chose aux questions de typage, de
compilation ou d'abstraction mais je me demande bien pourquoi Caml ne
peut il pas faire le gros du copier/coller à ma place en offrant une
notion plus ou moins unifiée (avec un simple mot cle pour changer le
comportement désiré ou quelque chose du genre).


        Diego Olivier


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


             reply	other threads:[~2004-08-06 10:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-06 10:14 Diego Olivier Fernandez Pons [this message]
2004-08-05 23:48 ` Christophe Raffalli
2004-08-06 15:29 ` John Prevost
2004-08-06 15:43   ` Diego Olivier Fernandez Pons

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.A41.4.44.0408061101010.618570-100000@ibm1 \
    --to=diego.fernandez_pons@etu.upmc.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).