From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 7A9A2BDD6 for ; Fri, 26 Aug 2005 11:53:39 +0200 (CEST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j7Q9rdo8030507 for ; Fri, 26 Aug 2005 11:53:39 +0200 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id LAA25431 for ; Fri, 26 Aug 2005 11:53:38 +0200 (MET DST) Received: from smtp.cegetel.net (mf01.sitadelle.com [212.94.174.68]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j7Q9rcHD001294 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Fri, 26 Aug 2005 11:53:38 +0200 Received: from [192.168.144.2] (84-4-33-159.adslgp.cegetel.net [84.4.33.159]) by smtp.cegetel.net (Postfix) with ESMTP id C468231875F; Fri, 26 Aug 2005 11:53:37 +0200 (CEST) Message-ID: <430EE6A1.9040705@univ-savoie.fr> Date: Fri, 26 Aug 2005 11:53:37 +0200 From: Christophe Raffalli User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050716) X-Accept-Language: fr, en MIME-Version: 1.0 To: Christophe Raffalli , caml-list Subject: Re: [Caml-list] Re: Parameter evaluation order References: <43065B83.6050503@dravanet.hu> <254E6767-A097-455B-872B-483725D26744@inria.fr> <000401c5a84a$a2e79760$1866b811@Operational> <91631662-65C4-4FB7-96B1-B6C1CAF50B80@inria.fr> <430C86A7.6050408@univ-savoie.fr> <430CD307.8000802@univ-savoie.fr> <430CE193.9000805@univ-savoie.fr> In-Reply-To: <430CE193.9000805@univ-savoie.fr> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at concorde with ID 430EE6A3.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 430EE6A2.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; christophe:01 raffalli:01 christophe:01 raffalli:01 univ-savoie:01 caml-list:01 constructors:01 unify:01 ...:98 compile:01 modules:01 modules:01 int:01 int:01 data:02 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=disabled version=3.0.3 > > The examples that bother me most are record constructors, where I want to > read structured data from a file into a record. And of course :: (which is > just sugar) too. > I did not know and completely agree with you: # type test = { a : int; b : int } type test = { a : int; b : int; } # { a = (print_string "a"; 1); b = (print_string "b"; 2)};; ba- : test = {a = 1; b = 2} This looks strange, because the semicolumn is used both to specify order evaluation left-to-right in sequence and right-to-left in record. And the pb of function application is not there, you could evaluate with the same efficiency record in any order, you know the number of arguments and what you should do with them at compile time. Moreover, if you want to unify record and modules ... then you have no choice, no body wants right-to-left (I should say bottom-to-top :-) evaluation order in modules :-)