From: Jean-Christophe Filliatre <filliatr@lri.fr>
To: Erik de Castro Lopo <ocaml-erikd@mega-nerd.com>
Cc: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Reporting on sucess/failure of tail recursion
Date: Fri, 2 Dec 2005 16:17:26 +0100 [thread overview]
Message-ID: <17296.25990.261724.744405@gargle.gargle.HOWL> (raw)
In-Reply-To: <20051202211627.128cbfc5.ocaml-erikd@mega-nerd.com>
Erik de Castro Lopo writes:
> with a no-recursive outer function and a tail recursive inner function.
> It would still be nice to know if the inner function is tail recursive.
As already explained by Basile, the right notion is that of "tail
call" not of "tail recursive function" (you can define it as "all
recursive calls are tail calls", but it is less precise). For
instance, the following function
let rec fold f s accu =
match s with
Empty -> accu
| Node(l, v, r, _) -> fold f r (f v (fold f l accu))
has two recursive calls, one which is not a tail call (fold f l accu)
and one which is (fold f r ...)
Being warned of non-tail calls may be useful in some situations, but I
guess the issue is often the call to a library function that is not
tail recursive. That's why you need the documentation to be explicit
about that...
--
Jean-Christophe Filliâtre (http://www.lri.fr/~filliatr)
next prev parent reply other threads:[~2005-12-02 15:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-02 9:09 Erik de Castro Lopo
2005-12-02 9:13 ` [Caml-list] " Jonathan Roewen
2005-12-02 9:25 ` Erik de Castro Lopo
2005-12-02 9:29 ` basile
2005-12-02 10:16 ` Erik de Castro Lopo
2005-12-02 15:17 ` Jean-Christophe Filliatre [this message]
2005-12-02 23:58 ` skaller
2005-12-02 10:45 ` David MENTRE
2005-12-03 0:28 David Thomas
2005-12-04 4:11 ` Andres Varon
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=17296.25990.261724.744405@gargle.gargle.HOWL \
--to=filliatr@lri.fr \
--cc=caml-list@yquem.inria.fr \
--cc=ocaml-erikd@mega-nerd.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