Well, pulling open the book from that course I took, they give four categories: Imperative, Functional, Logic, and Object Oriented. I know my professor threw in Generic because of she was aware of developments in that category outside of C++'s templating system. I also know of a supplemental category, Aspect Oriented Programming, which is just recently being researched.
I find that the easiest way to get the sense of a programming category is to list examples of which languages fall where:
Object Oriented: Smalltalk
Functional: LISP, APL, ML, Haskell
Logic: Prolog
Imperative: C
| [reply] |
It's dangerous to make such lists, though. For example,
nowadays Lisp (in the form of Common Lisp, at least), is
probably used more to program in imperative and OO styles than
functional. It just happens that you can reasonably do
functional programming in it, and has somehow become pigeonholed
as a functional language in some circles (when in fact there are
probably better languages to use to really get into functional
programming).
Of course, just about any language is subject to such stereotypes;
just look at how many people regard Perl. :-)
| [reply] |
Good observation. Note I didn't try to categorize Perl, since I'm very well aware that people have worked with it in just about all of the mentioned categories in some form or other. In this way it's probably easier to pigeonhole a language you know less about, rather than more.
As a general disclaimer though, I did not try to apply my own spotty knowledge in making that list. I referenced my textbook from that class I mentioned, as I figured the Author(s) knew more about the subject than I.
| [reply] |
www.haskell.org
Will give you the down on Functional programming. Hope you like maths:)
| [reply] |