From: "Loup Vaillant" <loup.vaillant@gmail.com>
To: "David Teller" <David.Teller@ens-lyon.org>
Cc: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Re: Teaching bottomline, part 3: what should improve.
Date: Thu, 24 May 2007 18:30:56 +0200 [thread overview]
Message-ID: <6f9f8f4a0705240930t612a7ea9n725c42cbceb864f1@mail.gmail.com> (raw)
In-Reply-To: <1179924683.6966.90.camel@Blefuscu>
2007/5/23, David Teller <David.Teller@ens-lyon.org>:
> On Wed, 2007-05-23 at 10:03 +0200, Loup Vaillant wrote:
> > On Tue, 22 May 2007, David Teller wrote:
> >
> > > * That's not OCaml-specific but there must be some construction better
[...]
> > What about map fold, filter, and the like? Sure, they are somewhat
[...]
>
> I was thinking about a fold specialised in integers. But with a "better"
> syntax and semantics than either fold (i.e. no anonymous functions) or
> for (i.e. no reliance on references). Of course, I don't have such a
> construction at hand.
It sounds like you need some kind of macro which can encapsulate a
chunk of code into an anonymous function like :
for_each i : my_list
begin
i*2
end
(* map (fun i -> i*2) my_list *)
and :
accumulate acc = 0 in i : my_list
begin
acc+i
end
(* fold (+) 0 my_list *)
Problem : works only on lists (or arrays, depending of your choice).
And a Haskell like syntax for creating lists would help. (something
like [0..10]). I think camlp4 can handle all that.
Another solution to your problem is to use a Lisp syntax, and write
the appropriate macros (and go explain what a macro is...). :)
> > > * Some students rely too much on references.
> >
> > If they are used to for and while loops, they will think more often in
> > terms of references (as I did). Then, we have the array, a collection
> > of references. Do you think your students could learn some purely
> > functional data structures instead? Should they?
>
> There is such a thing as relying *too much* on references.
Ah. Well, are they sometimes incapable of solving a problem in a pure
functional way? Is it just harder? By the way, for how long have they
been exposed to imperative languages before your course?
regards,
Loup
next prev parent reply other threads:[~2007-05-24 16:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070522234715.0BCB2BC74@yquem.inria.fr>
2007-05-23 5:21 ` Dan Grossman
2007-05-23 8:03 ` [Caml-list] " Loup Vaillant
2007-05-23 12:51 ` David Teller
2007-05-24 16:30 ` Loup Vaillant [this message]
2007-05-24 18:08 ` Jon Harrop
2007-05-24 21:29 ` David Teller
2007-05-25 7:58 ` Loup Vaillant
2007-05-25 9:57 ` Markus E.L.
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=6f9f8f4a0705240930t612a7ea9n725c42cbceb864f1@mail.gmail.com \
--to=loup.vaillant@gmail.com \
--cc=David.Teller@ens-lyon.org \
--cc=caml-list@yquem.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