From: John Skaller <skaller@maxtal.com.au>
To: John Prevost <prevost@maya.com>, Pierre Weis <Pierre.Weis@inria.fr>
Cc: caml-list@inria.fr
Subject: Re: convincing management to switch to Ocaml
Date: Tue, 31 Aug 1999 15:19:48 +1000 [thread overview]
Message-ID: <3.0.6.32.19990831151948.00971280@mail.triode.net.au> (raw)
In-Reply-To: <m3vh9wolh6.fsf@isil.maya.com>
At 20:13 30/08/99 -0400, John Prevost wrote:
>Pierre Weis <Pierre.Weis@inria.fr> writes:
>I had a similar problem with SML and Caml until I realized the one
>important rule that makes things clear: The juxtaposition
>(application) operator has the highest precedence.
Actually, I don't have much problem remembering that one,
since it is used so often. However, let me give
you an example I cannot do today. I tried various
combinations, and have given up in exasperation. :-)
Consider that I wish to add some optional types to:
let f x y = something;;
Now I know I can write
let f (x:t1) (y:t2) : t3 = something;;
and I can write
let f: t2 -> t2 -> t3 = something;;
but the latter doesn't work right if I need the parameters
to have names. I tried:
let (f: t2 -> t2 -> t3) x y = something;;
and that doesn't seem to work? This shape is important,
where I have a set of functions of the same type,
with an abbreviation. There seems to be a problem,
that the operator -> is overloaded in meaning:
it means 'returns the type' and also 'has the value'.
So in
fun x y -> value
I cannot just write
fun x y : t1 -> t2 -> value
because the -> would be ambiguous, and I'm at a loss to know
where the brackets should go, or even if it is possible
to type the result of this function or the type of the return
value. In fact, with currying, it isn't quite so clear
what 'return value' means, since it depends on
whether you apply the return value again.
Now, I am sure the answers lie in the formal grammar, but the
(informal) grammar in the manual
is too complex to comprehend, and doesn't specify semantics,
(except some curoty notes), and the various 'precedence tables'
floating around don't seem to cover all the cases: I usually
use the 'ocaml' interpreter to answer these kinds of questions
by trial and error.
-------------------------------------------------------
John Skaller email: skaller@maxtal.com.au
http://www.maxtal.com.au/~skaller
phone: 61-2-96600850
snail: 10/1 Toxteth Rd, Glebe NSW 2037, Australia
next prev parent reply other threads:[~1999-08-31 17:15 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-07-28 14:47 STARYNKEVITCH Basile
1999-07-30 9:00 ` Markus Mottl
1999-08-13 10:32 ` John Skaller
1999-08-25 1:51 ` Frank A. Christoph
1999-08-25 3:50 ` John Skaller
1999-08-25 6:34 ` Frank A. Christoph
1999-08-26 18:36 ` Stefan Monnier
1999-08-29 6:08 ` John Skaller
1999-08-27 10:00 ` Andreas Rossberg
1999-08-28 6:24 ` John Skaller
1999-08-30 15:59 ` Sylvain BOULM'E
1999-08-31 5:50 ` Brian Rogoff
1999-08-28 19:51 ` Dave Mason
1999-08-30 19:05 ` Xavier Leroy
1999-08-30 8:02 ` Pierre Weis
1999-08-30 19:35 ` John Skaller
1999-08-31 17:10 ` Pierre Weis
1999-09-03 6:56 ` John Skaller
1999-08-31 19:03 ` Stefan Monnier
1999-09-03 7:28 ` John Skaller
1999-08-31 0:13 ` John Prevost
1999-08-31 5:19 ` John Skaller [this message]
1999-08-31 6:35 ` John Prevost
1999-09-03 5:42 ` John Skaller
1999-08-31 16:24 ` Gerard Huet
1999-07-30 14:42 ` John Skaller
1999-07-30 18:49 ` Gerd Stolpmann
1999-07-30 21:30 ` Francois Rouaix
1999-08-12 10:36 ` Reply to: " Jens Olsson
1999-08-16 18:33 ` Chris Tilt
1999-08-12 12:15 ` Frank A. Christoph
1999-08-15 8:14 ` Friedman Roy
-- strict thread matches above, loose matches on Subject: below --
1999-09-07 7:24 TommyHallgren
[not found] <John Skaller's message of "Tue, 31 Aug 1999 15:19:48 +1000">
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=3.0.6.32.19990831151948.00971280@mail.triode.net.au \
--to=skaller@maxtal.com.au \
--cc=Pierre.Weis@inria.fr \
--cc=caml-list@inria.fr \
--cc=prevost@maya.com \
/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