From: "\"Márk S. Zoltán\"" <zoltan.s.mark@dravanet.hu>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Parameter evaluation order
Date: Fri, 26 Aug 2005 19:53:50 +0200 [thread overview]
Message-ID: <430F572E.9050506@dravanet.hu> (raw)
In-Reply-To: <4306F415.60806@inria.fr>
First of all, thank you for your answers. I thought a bit about this
stuff - took a while. For reasons I am too embarrassed to explain, I
prefer to answer a number of posts in one reply.
Alain Frisch wrote:
>
>It is, but your conclusion about left-to-right evaluation order is
>wrong. It's just that the binary application operator evaluates first
>its second argument (the function's argument), then its first argument
>(the functional value), and finally applies the function to the
>argument. An application (e1 e2) is semantically equivalent to: (let y
>= e2 in let x = e1 in x y). Hence you get right-to-left evaluation order
>(but this is not specified).
>
>-- Alain
>
>
I think I have to retract my equation completely: right now I do not see
how *any* evaluation order would be implied by currying + strictness +
side effects at all. Alain, in your model right-to-left evaluation is a
consequence of defining (e1 e2) as you do; if it was defined to be (let
x = e1 in let y = e2 in x y), we would have left-to-right evaluation. So
the evaluation order is introduced by the definition of the functional
application, not by strictness, currying etc.
I still wonder why did I implicitly assume this latter definition for
function application. It seemed so straightforward, and it is also the
order in which application of curried functions is usually explained
(the explanation proceeds this way, it does not ever say that the actual
ordering is also left-to-right). Sorry, guys.
Damien Doligez wrote:
> The problem (and historical reason for OCaml's unspecified order) is
> that
>
> currying + side-effects + left-to-right evaluation order => inefficiency
That line of reasoning is fine with me, as I would not make use of a
declared parameter evaluation order anyway, while I constantly rely on
the performance of OCaml. Whoever relies on parameter evaluation order
is probably capable of committing other hideous crimes, too.
brogoff wrote:
>It's a fun topic to chat about, but if you were allowed one change in the
>language, surely this wouldn't be it? :-)
>
Absolutely so. Tail recursion modulo cons is more important.
Regards
M-
next prev parent reply other threads:[~2005-08-26 17:54 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-19 22:21 "Márk S. Zoltán"
2005-08-20 9:12 ` [Caml-list] " Alain Frisch
2005-08-26 17:53 ` "Márk S. Zoltán" [this message]
2005-08-22 16:50 ` Damien Doligez
2005-08-23 7:12 ` skaller
2005-08-23 11:29 ` Damien Doligez
2005-08-23 13:34 ` Igor Pechtchanski
2005-08-23 19:52 ` Damien Doligez
2005-08-24 1:24 ` Hao-yang Wang
2005-08-24 11:33 ` [Caml-list] " Damien Doligez
2005-08-24 14:39 ` Christophe Raffalli
2005-08-24 15:47 ` Berkeley DB Joel Reymont
2005-08-24 16:08 ` [Caml-list] Re: Parameter evaluation order brogoff
2005-08-24 20:05 ` Christophe Raffalli
2005-08-24 20:25 ` brogoff
2005-08-24 20:53 ` Jon Harrop
[not found] ` <430CE193.9000805@univ-savoie.fr>
2005-08-26 9:53 ` Christophe Raffalli
2005-08-26 10:10 ` Jon Harrop
2005-08-26 12:09 ` Christophe Raffalli
2005-08-26 12:26 ` Diego Olivier Fernandez Pons
2005-08-26 16:48 ` Christophe Raffalli
2005-08-27 15:33 ` Christophe TROESTLER
2005-08-26 12:36 ` Ville-Pertti Keinonen
2005-08-26 14:17 ` Fernando Alegre
2005-08-26 17:00 ` Christophe Raffalli
2005-08-26 22:58 ` skaller
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=430F572E.9050506@dravanet.hu \
--to=zoltan.s.mark@dravanet.hu \
--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