From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 64441BC6B for ; Sat, 4 Aug 2007 21:24:08 +0200 (CEST) Received: from einhorn.in-berlin.de (einhorn.in-berlin.de [192.109.42.8]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l74JO7Nb006986 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Sat, 4 Aug 2007 21:24:08 +0200 X-Envelope-From: oliver@first.in-berlin.de X-Envelope-To: Received: from einhorn.in-berlin.de (localhost [127.0.0.1]) by einhorn.in-berlin.de (8.13.6/8.13.6/Debian-1) with ESMTP id l74JO73R012051 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Sat, 4 Aug 2007 21:24:07 +0200 Received: (from www-data@localhost) by einhorn.in-berlin.de (8.13.6/8.13.6/Submit) id l74JO71g012049 for caml-list@yquem.inria.fr; Sat, 4 Aug 2007 21:24:07 +0200 X-Authentication-Warning: einhorn.in-berlin.de: www-data set sender to oliver@first.in-berlin.de using -f Received: from dslb-088-073-079-147.pools.arcor-ip.net (dslb-088-073-079-147.pools.arcor-ip.net [88.73.79.147]) by webmail.in-berlin.de (IMP) with HTTP for ; Sat, 4 Aug 2007 21:24:07 +0200 Message-ID: <1186255447.46b4d25719255@webmail.in-berlin.de> Date: Sat, 4 Aug 2007 21:24:07 +0200 From: Oliver Bandel To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Warning on not-tail recursive functions References: <46B45BE3.9040403@menta.net> <1186230861.46b4724d1561e@webmail.in-berlin.de> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) 3.2.6 X-Scanned-By: MIMEDefang_at_IN-Berlin_e.V. on 192.109.42.8 X-Miltered: at discorde with ID 46B4D257.001 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; bandel:01 in-berlin:01 recursive:01 bandel:01 tailcall:01 tail-call:01 tailcall:01 2007,:98 wrote:01 oliver:01 oliver:01 caml-list:01 functions:01 tail:01 implemented:02 Zitat von Brian Hurt : > > > On Sat, 4 Aug 2007, Oliver Bandel wrote: > > > What ist with a > > > > ... > > ignore (maybe_tailcall()) > > ... > > > > That is not a tail call. You're using the value it returns. Yes, but ignore ignores the value, and my question was regarded to THIS CERTAIn aspect: if it INTERNALLY would mean that the arguments will not be created, then nothing must be given back and if no further commands are following (read the "..." under the ignore-call as the next pattern of a pattern match, not as a command that follows the ignore(..)). > > Brian > > > Does ignore REALLY ignore the values (does not generate them), so that > > this call is like a true tail-call, or will the maybe_tailcall > > generate and give back results to the ignore-call and then > > ignore throws away the stuff (then it would be NO tailcall). > > Throwing away the result is using the result. Ignoring a result in a way that it will never be created, would mean to have no result => this would be tailcall-equivalent. And that was my question! Would ignore throw away the created results, or would it suppress creating results?! Now some answers wer: results will be treated and thrown away afterwards. Then a next question could arise: could it be implemented in a way, that creating the results would be blocked from the beginning on (so that nothing must be thrown away, because nothing would be created)? This is not really an urgent question, only something, that during the last two days sometimes came to my mind. Ciao, Oliver