caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Patrick M Doane <patrick@watson.org>
To: Brian Rogoff <bpr@best.com>
Cc: John Max Skaller <skaller@ozemail.com.au>,
	Jun Furuse <Jun.Furuse@inria.fr>,
	caml-list@inria.fr
Subject: Re: "Re: [Caml-list] A G'Caml question" + additional info
Date: Tue, 10 Jul 2001 14:08:22 -0400 (EDT)	[thread overview]
Message-ID: <Pine.BSF.3.96.1010710115616.4472B-100000@fledge.watson.org> (raw)
In-Reply-To: <Pine.BSF.4.21.0107020821370.8245-100000@shell5.ba.best.com>

On Mon, 2 Jul 2001, Brian Rogoff wrote:

> I'm convinced that the include scheme, when properly integrated with
> modules, will be sufficient. We need more experience with the current
> scheme. 

I'm convinced now too, it took me a day or two to think things over to
come to the same conclusion.

Caml already has support for generic programming by using functors but
they can get cumbersome when concepts are highly separated.  For example,
I usually see every algorithm written as a functor.  This is very
powerful, but requires many more lines of code for all the functor
instantiation. In some sense, we also lose a nice aspect of core ML -- the
ability to avoid specifying types. 

Initially I thought that G'caml (when integrated with the rest of the
language) wouldn't be able to improve on this model for writing libraries. 
When all the code is under central control, the code can obviously be
reordered such that all generic values come before all derived generics. 

I now see that a library which wants to provide generic algorithms will be
much easier to write with G'caml.  Rather than providing a functor for
every algorithm which must be instantiated in for a large variety of
types, the library would provide one functor per module which needs to be
instantiated once with the generic values defined by the application. This
all makes sense, and is easy to trace/follow manually.

Patrick


-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  reply	other threads:[~2001-07-10 18:09 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3B3D503C.E91DDE34@ozemail.com.au>
2001-06-30 16:01 ` Patrick M Doane
2001-06-30 20:59   ` Brian Rogoff
2001-07-01  5:32     ` Patrick M Doane
2001-07-02 15:55       ` Brian Rogoff
2001-07-10 18:08         ` Patrick M Doane [this message]
2001-07-16 18:24 John R Harrison
  -- strict thread matches above, loose matches on Subject: below --
2001-07-11 14:30 Krishnaswami, Neel
2001-07-11 16:22 ` Brian Rogoff
2001-07-11 16:35   ` Bruce Hoult
2001-07-11 19:12     ` Markus Mottl
2001-07-12  3:15   ` Patrick M Doane
2001-07-10 18:21 Krishnaswami, Neel
2001-07-11  6:09 ` Sven
     [not found] <3B3BB6EC.3DEB6CBF@ozemail.com.au>
2001-06-29  4:18 ` Patrick M Doane
2001-06-20  3:16 [Caml-list] A G'Caml question Brian Rogoff
2001-06-25 17:11 ` "Re: [Caml-list] A G'Caml question" + additional info Jun Furuse
2001-06-28  2:21   ` Patrick M Doane
2001-06-28  4:40     ` Brian Rogoff

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.BSF.3.96.1010710115616.4472B-100000@fledge.watson.org \
    --to=patrick@watson.org \
    --cc=Jun.Furuse@inria.fr \
    --cc=bpr@best.com \
    --cc=caml-list@inria.fr \
    --cc=skaller@ozemail.com.au \
    /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).