[erlang-questions] Conceptual questions on architecture of functional programs

Ahmed Omar <>
Thu Nov 4 09:29:58 CET 2010


I would recommend this one:
http://www.defmacro.org/ramblings/fp.html

2010/11/4 黃耀賢 (Yau-Hsien Huang) <>

> Hi, Silas.
>
> There's an introductory paper "Why Functional Programming Matters" for you.
>
> In functional fashion, you can make second-order, third-order and
> n-th-order
> functions
> when you pass a name of a first-order function into some function.
>
>
> --
>
> Best Regards.
>
> --- Y-H. H.
>
>
> On Thu, Nov 4, 2010 at 9:23 AM, Silas Silva <> wrote:
>
> > Hi all!
> >
> > After asking conceptual questions about distributed NoSQL databases, it
> > is time for a more newbie question, about functional programming.
> >
> > There is some years I do fine OO and imperative programming.  I needed
> > to learn some functional programming.  So I decided to start a basic
> > commercial application (customer, orders, etc.) in Erlang to learn
> > something about it.  After some time, I realized my program had the
> > following structure:
> >
> >
> > - model.erl -> basic functional to access Mnesia database
> > - layer.erl -> an abstraction layer between model and front-end.
> >  Controller?
> > - frontend.erl -> show a front-end for the user, for now HTTP in
> >  Mochiweb.  Latter, a GUI.
> >
> >
> > So, from fron-end I use layer functions, that use model functions.
> >
> > So I realized I wasn't actually doing any functional programming.  This
> > could be an architecture of a C program using high-level code.  I did
> > sequential programming split in dozens of mini-functions and I believed
> > that this was functional programming (a C-like program with high-level
> > constructors)...
> >
> > In OO, I would easily return an object from layer, call its methods to
> > get what I wanted and make heavy use of encapsulation in objects.  I
> > could also pass objects in and out.
> >
> > In the program I just wrote, I pass in and out records, that are not
> > that different from passing C structures in and out.
> >
> > So, my question is:  where is my mistake?  What about a reference (book,
> > tutorial whatever) about functional programming architecture for OO
> > programmers (or imperative programmers)?  "Programming Erlang Software
> > for a Concurrent World", by Joe Armstrong is great, but it is more about
> > the language itself than functional programming techniques.  "Practical
> > Common Lisp", by Peter Seibel is more worth to read.
> >
> > Other references are found in
> >
> >
> http://stackoverflow.com/questions/89212/functional-programming-architecture
> >
> > Any tips about that?
> >
> > Thanks!
> >
> > P.S: The above program don't have any concurrent code yet.  I know it is
> > really important for Erlang, but would it be really that necessary to
> > get function programming feeling?
> >
> > --
> > Silas Silva
> >
> > ________________________________________________________________
> > erlang-questions (at) erlang.org mailing list.
> > See http://www.erlang.org/faq.html
> > To unsubscribe; mailto:
> >
> >
>



-- 
Best Regards,
- Ahmed Omar
http://nl.linkedin.com/in/adiaa
Follow me on twitter
@spawn_think <http://twitter.com/#!/spawn_think>


More information about the erlang-questions mailing list