[erlang-questions] "Design patterns" for functional languages?

Michael T. Richter ttmrichter@REDACTED
Thu Aug 7 04:17:10 CEST 2008


On Wed, 2008-08-06 at 14:15 -0700, Kevin Scaldeferri wrote:

> > I'm not sure I agree with the statement quoted by Michael that FP
> > doesn't have the shortcomings of OO so GoF-like patterns aren't
> > necessary.



> Yeah, functional programming has _different_ patterns, not no  
> patterns.  And, in some sense they also highlight shortcomings.



> For example, functional languages typically do not have lists that you  
> can append to efficiently, so we need the "Accumulate and Reverse"  
> pattern.



> Erlang doesn't allow you to enumerate the messages a process can  
> receive, so we have a "Hide Message-Passing Behind Functions" pattern.


These would fall more under the heading of "idioms" than GoF-style
patterns in my books (although the latter of the two is in the same grey
space I mention below).  The equivalent in C++, to contrast to the
GoF-style patterns, would be the use of auto_ptr in functions to make up
for C++'s lack of decent memory management.  Some of the GoF patterns
(I'm looking at you here, Singleton!) verge on the idiom level, but in
general they're architectural constructs, not coding tricks.

-- 
Michael T. Richter <ttmrichter@REDACTED> (GoogleTalk:
ttmrichter@REDACTED)
We should sell bloat credits, the way the government sells pollution
credits. Everybody's assigned a certain amount of bloat, and if they go
over, they have to purchase bloat credits from some other group that's
been more careful. (Bent Hagemark)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080807/5850069e/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080807/5850069e/attachment.bin>


More information about the erlang-questions mailing list