Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
* RE: [Caml-list] really HO Functions
@ 2004-09-30 17:30 Harrison, John R
  2004-10-04 11:13 ` [Caml-list] Wierd behavior of file reading when tried to start an executable in Ocaml code Andy Yang
  0 siblings, 1 reply; 4+ messages in thread
From: Harrison, John R @ 2004-09-30 17:30 UTC (permalink / raw)
  To: caml-list; +Cc: Harrison, John R

| I've just had a look through some real programs that I've written and
the 
| answer is definitely yes. I use them quite a lot. For >2 they are
mainly 3, 
| sometimes 4 and I haven't seen any >4.

I haven't actually checked, but I suspect I'd find something similar.
There may
be an interesting psychological observation to be made here: most people
find
very high-order functions intellectually unmanageable.

Something similar is usually acknowledged in logic with respect to long
quantifier alternations (for all x there exists a y such that for all z,
...).
I believe I once saw a provocative claim by Kreisel that most
mathematical
concepts are in fact only invented in order to hide complicated
quantifier
alternations.

John.

-----Original Message-----
From: owner-caml-list@pauillac.inria.fr
[mailto:owner-caml-list@pauillac.inria.fr] On Behalf Of Jon Harrop
Sent: Wednesday, September 29, 2004 3:31 PM
To: caml-list
Subject: Re: [Caml-list] really HO Functions


On Wednesday 29 September 2004 19:48, Radu Grigore wrote:
> My question is: are there functions of level >= 2 used in practice
> (e.g. (('a -> 'b -> 'a) -> 'a -> 'b list -> 'a) -> 'c)?

I've just had a look through some real programs that I've written and
the 
answer is definitely yes. I use them quite a lot. For >2 they are mainly
3, 
sometimes 4 and I haven't seen any >4.

> If so, are 
> there any typical ones that appear in many applications (maybe not as
> widespread like map & company but at least of comparable usefulness)?

I seem to use them when I write generic functions which are later
specialised.

> One example of a level 2 function (stolen from a recent post by Jon
> Harrop) is this:
>   let sum fold = fold (+);;

Funny to think that this function is still state-of-the-art Java and
C++. ;-)

Cheers,
Jon.

-------------------
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

-------------------
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


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-10-04 12:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-30 17:30 [Caml-list] really HO Functions Harrison, John R
2004-10-04 11:13 ` [Caml-list] Wierd behavior of file reading when tried to start an executable in Ocaml code Andy Yang
2004-10-04 11:28   ` Keith Wansbrough
2004-10-04 12:40   ` skaller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox