From: Alex Baretta <alex@barettadeit.com>
To: alphablock <alphablock@wanadoo.fr>, Ocaml <caml-list@inria.fr>
Subject: Re: [Caml-list] (Mostly) Functional Design?
Date: Mon, 18 Jul 2005 17:26:14 +0200 [thread overview]
Message-ID: <42DBCA16.3000002@barettadeit.com> (raw)
In-Reply-To: <006801c58ba4$0b7bfe60$322cf8c1@oemcomputer>
alphablock wrote:
> May be there are many less FP solutions than OOP solutions just because
> there are many less FP problems than OOP problems.
>
> Or may be i am plain naive, who knows...
>
> - damien
I would not say so. It is just the problems tend to admit a fairly
simple--although generally not trivial solution. This does not justify a
large scale attempt to catalog all FP "design patterns" in a single
book. Let me try to list a few I can readily think of.
* Indefinite recursion through tail call optimization
* Systematic elimination of explicit or implicit (recursive) cycles
whenever an iterator is available. If an iterator is not available for a
given data structure, it is often advisable to define one.
* Order preservation of sequential data structures such as lists through
the use of an even number of order reversing tail-recursive algorithms.
* Late-binding of recursive calls
* Multi-stage programming through partial evaluation
...
These ideas are more general coding strategies requiring a specific
design from the programmer, rather than parametrized design patterns
abstracting from the (absence of) cognitive abilities of the programmer.
Alex
--
*********************************************************************
http://www.barettadeit.com/
Baretta DE&IT
A division of Baretta SRL
tel. +39 02 370 111 55
fax. +39 02 370 111 54
Our technology:
The Application System/Xcaml (AS/Xcaml)
<http://www.asxcaml.org/>
The FreerP Project
<http://www.freerp.org/>
next prev parent reply other threads:[~2005-07-18 15:27 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-14 18:00 Kyle Consalus
2005-07-18 7:59 ` [Caml-list] " Robert Morelli
2005-07-18 9:22 ` Alex Baretta
[not found] ` <42DB78D3.7010401@andrej.com>
2005-07-18 10:01 ` Alex Baretta
2005-07-18 18:15 ` Robert Morelli
2005-07-18 18:45 ` Alex Baretta
2005-07-18 18:56 ` padiolea
2005-07-18 19:19 ` Jon Harrop
2005-07-18 19:38 ` Jon Harrop
2005-07-18 21:27 ` skaller
2005-07-18 21:55 ` Alwyn Goodloe
2005-07-18 22:16 ` Paul Snively
2005-07-19 0:45 ` Jonathan Bryant
2005-07-18 21:37 ` skaller
2005-07-18 22:00 ` Kenneth Oksanen
2005-07-18 9:29 ` Mark Meyers
2005-07-18 9:56 ` Large scale and FP (was: Re: [Caml-list] (Mostly) Functional Design?) David MENTRE
2005-07-18 18:11 ` Large scale and FP Robert Morelli
2005-07-18 14:08 ` [Caml-list] (Mostly) Functional Design? james woodyatt
2005-07-18 16:37 ` Alwyn Goodloe
2005-07-18 14:21 ` alphablock
2005-07-18 15:26 ` Alex Baretta [this message]
2005-07-18 15:38 ` alphablock
2005-07-18 17:17 ` Doug Kirk
2005-07-18 18:14 ` Alex Baretta
2005-07-19 7:42 ` james woodyatt
2005-07-19 9:35 ` Robert Morelli
2005-07-19 16:53 ` james woodyatt
2005-07-19 17:13 ` Paul Snively
2005-07-19 23:58 ` Jon Harrop
2005-07-20 0:29 ` Paul Snively
2005-07-18 18:23 ` padiolea
2005-07-18 19:45 ` Gerd Stolpmann
2005-07-18 22:16 ` skaller
2005-07-19 0:48 ` Chris Campbell
2005-07-19 20:14 ` Some Clarifications Robert Morelli
2005-07-20 6:18 ` [Caml-list] " Ville-Pertti Keinonen
2005-07-24 0:04 ` Robert Morelli
2005-07-24 2:30 ` Paul Snively
2005-07-24 7:37 ` Alex Baretta
2005-07-24 8:08 ` Robert Morelli
2005-07-24 12:23 ` David Teller
2005-07-24 18:29 ` skaller
2005-07-24 18:51 ` Paul Snively
2005-07-24 12:42 ` Gerd Stolpmann
2005-07-25 7:23 ` Ville-Pertti Keinonen
2005-07-20 7:34 ` David MENTRE
2005-07-27 15:37 ` Robert Morelli
2005-07-27 20:33 ` skaller
2005-07-27 23:48 ` Paul Snively
2005-07-20 16:28 ` Damien Doligez
2005-07-24 14:51 ` Robert Morelli
2005-07-24 16:11 ` David MENTRE
2005-07-25 12:21 ` Damien Doligez
2005-07-25 15:47 ` Richard Jones
2005-07-22 5:18 ` [Caml-list] (Mostly) Functional Design? Marius Nita
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=42DBCA16.3000002@barettadeit.com \
--to=alex@barettadeit.com \
--cc=alphablock@wanadoo.fr \
--cc=caml-list@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