From: Andrej Bauer <Andrej.Bauer@andrej.com>
Cc: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Avoiding shared data
Date: Wed, 05 Oct 2005 13:14:03 +0200 [thread overview]
Message-ID: <4343B57B.3070702@andrej.com> (raw)
In-Reply-To: <Pine.LNX.4.61.0510031406320.28375@eiger.cip.physik.uni-muenchen.de>
Thomas Fischbacher wrote:
> He presumably wanted to see a different thing, e.g.
> automatically transforming
> let rec fac1 x =
> if x = 0
> then 1
> else x*(fac1 (x-1))
> ;;
>
> into
>
> let fac2 x =
> let rec walk so_far todo =
> if todo = 0
> then so_far
> else walk (todo*so_far) (todo-1)
> in walk 1 x
> ;;
>
> My impression is that it may indeed be possible to do something like this
> for simple applications, but that the cases that can be covered
> automatically presumably are so limited that an experienced programmer
> will usually want to attack them by going to a higher form of abstraction
> and not waste time on such things anyway.
Incidentally, I recently wrote a little piece on how to transform one
kind of recursion into another kind of recursion via
propositions-as-types http://math.andrej.com/2005/09/16/proof-hacking/
which may be of interest to some of you. I only considered a very simple
kind of recursion on natural numbers. My impression is that quite a
general form of recursion could be treated (replace natural numbers by a
well-founded type, for example).
This sort of thing is probably not immediately useful in programming
practice. But even "real" programmers should be aware of abstract
mathematical ideas because they they indirectly make them write better
programs.
Best regards,
Andrej
next prev parent reply other threads:[~2005-10-05 11:14 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-25 21:32 Martin Chabr
2005-09-26 0:23 ` [Caml-list] " Bill Wood
2005-09-26 7:57 ` Claudio Sacerdoti Coen
2005-09-26 8:17 ` William Lovas
2005-09-26 21:07 ` Ant: " Martin Chabr
2005-09-26 22:08 ` Jon Harrop
2005-09-30 22:57 ` Oliver Bandel
2005-10-01 0:07 ` Pal-Kristian Engstad
2005-10-01 5:46 ` Bill Wood
2005-10-01 8:27 ` Wolfgang Lux
2005-10-01 18:02 ` Wolfgang Lux
2005-10-01 21:50 ` Ant: " Martin Chabr
2005-10-01 12:34 ` Oliver Bandel
2005-10-01 13:58 ` Bill Wood
2005-10-01 21:05 ` Ant: " Martin Chabr
2005-10-03 0:41 ` skaller
2005-10-03 1:13 ` Seth J. Fogarty
2005-10-03 13:09 ` Thomas Fischbacher
2005-10-03 14:57 ` skaller
2005-10-03 20:03 ` Ant: " Martin Chabr
2005-10-03 20:25 ` Thomas Fischbacher
2005-10-03 21:08 ` Jon Harrop
2005-10-04 18:06 ` Ant: " Martin Chabr
2005-10-04 18:32 ` Jon Harrop
2005-10-04 2:53 ` skaller
2005-10-04 16:15 ` Brian Hurt
2005-10-04 16:47 ` FP/IP and performance (in general) and Patterns... (Re: [Caml-list] Avoiding shared data) Oliver Bandel
2005-10-04 22:38 ` Michael Wohlwend
2005-10-05 0:31 ` Jon Harrop
2005-10-04 22:39 ` Christopher A. Watford
2005-10-04 23:14 ` Jon Harrop
2005-10-05 12:10 ` Oliver Bandel
2005-10-05 13:08 ` Jon Harrop
2005-10-05 15:28 ` skaller
2005-10-05 20:52 ` Ant: " Martin Chabr
2005-10-05 23:21 ` Markus Mottl
2005-10-06 16:54 ` brogoff
2005-10-05 0:45 ` Brian Hurt
2005-10-04 18:09 ` Ant: Re: Ant: Re: Ant: Re: Ant: Re: [Caml-list] Avoiding shared data Martin Chabr
2005-10-05 8:42 ` skaller
2005-10-05 11:14 ` Andrej Bauer [this message]
2005-10-01 21:36 ` Martin Chabr
2005-10-03 11:51 ` getting used to FP-programming (Re: Ant: Re: Ant: Re: [Caml-list] Avoiding shared data) Oliver Bandel
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=4343B57B.3070702@andrej.com \
--to=andrej.bauer@andrej.com \
--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;
as well as URLs for NNTP newsgroup(s).