What I am looking for are the formal design methods and tools
  supporting those methods that lead one through the task
  of decomposing a problem (possibly specified in a requirements
  document) into a design that can be used as the starting point
  for coding with a functional language. The documentation
  should not only cover the engineering task of (using generic terms)
  top-level-design, intermediate-design, detailed-design,
  unit-coding&test, test&integration,
  requirements-testing&sell-off, etc, but also how one
  manages such a project.

Good question.  Both Erlang and Natural Expert have been widely used
in industry, and both have training courses that cover at least some
of what you want.  For a quick intro to these, see

        www.cs.bell-labs.com/~wadler/topics/recent.html#angry

and follow the pointers from there.  (This paper also contains just
what you don't want, a list of serious applications of FP.  :-)

Your quote represents what I suspect is a widely held view.

  "... functional approaches do not permit you to create
  an abstract notion of system state that can be modeled.
  Functional languages are great for people to think about
  problems (especially recursion), but they are no good for 
  large software systems.  It's not that people haven't looked
  at them in this context; they don't work."

This claim is belied by the success of Erlang and Natural Expert.
Also, there are scores of functional programs containing over 50K
lines.  While not large in software engineering terms, these go well
beyond merely being used to `think about problems (especially
recursion)'.  If the quote is not confidential, I'd appreciate if
you could give a source for it.

Yours,  -- P

-----------------------------------------------------------------------
Philip Wadler                             [EMAIL PROTECTED]
Bell Laboratories                   http://www.cs.bell-labs.com/~wadler
Lucent Technologies                             office: +1 908 582 4004
600 Mountain Ave, room 2T-402                      fax: +1 908 582 5857
Murray Hill, NJ 07974-0636  USA                   home: +1 908 626 9252
-----------------------------------------------------------------------


Reply via email to