From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id 31441BDCE for ; Tue, 23 Aug 2005 13:29:55 +0200 (CEST) Received: from isis.lip6.fr (isis.lip6.fr [132.227.60.2]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j7NBTs4K025834 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 23 Aug 2005 13:29:55 +0200 Received: from spi.lip6.fr (spi.lip6.fr [132.227.83.193]) by isis.lip6.fr (8.13.1/jtpda-5.4+victor) with ESMTP id j7NBTsxi019387 for ; Tue, 23 Aug 2005 13:29:54 +0200 X-pt: isis.lip6.fr Received: from [132.227.83.219] (doligezportable.lip6.fr [132.227.83.219]) by spi.lip6.fr (8.11.6/jtpda-5.2) with ESMTP id j7NBTnf22229 for ; Tue, 23 Aug 2005 13:29:49 +0200 Mime-Version: 1.0 (Apple Message framework v733) In-Reply-To: <1124781154.8832.12.camel@localhost.localdomain> References: <43065B83.6050503@dravanet.hu> <254E6767-A097-455B-872B-483725D26744@inria.fr> <1124781154.8832.12.camel@localhost.localdomain> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Damien Doligez Subject: Re: [Caml-list] Parameter evaluation order Date: Tue, 23 Aug 2005 13:29:50 +0200 To: caml-list X-Mailer: Apple Mail (2.733) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0b2 (isis.lip6.fr [132.227.60.2]); Tue, 23 Aug 2005 13:29:54 +0200 (CEST) X-Scanned-By: isis.lip6.fr X-Miltered: at nez-perce with ID 430B08B2.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; damien:01 damien:01 caml-list:01 curried:01 evalue:01 annotations:01 arity:01 syntax:01 2005,:98 ...:98 wrote:01 wrote:01 doligez:01 doligez: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.0 required=5.0 tests=none autolearn=disabled version=3.0.3 On Aug 23, 2005, at 09:12, skaller wrote: > On Mon, 2005-08-22 at 18:50 +0200, Damien Doligez wrote: > > > > >> Suppose you want to evaluate a curried function call in left-to-right >> order: >> f e1 e2 e3 e4 >> >> You must evaluate f first, then e1. Then you must apply f to e1, >> giving >> a new function g1. Then you must evalue e2, then apply f1 to e2, >> giving >> f2, etc. >> >> That's because f might do some side effects between its arguments. >> >> >> > > what data, and possibly annotations, would be required to solve this > problem? > > The most direct solution is to introduce the notion of function arity in the type system. As far as I know, there is no theoretical difficulty, the biggest problem is to find a syntax that satisfies everyone... -- Damien