3 ms·
I think so. The big ones I know of being: - dynamic object oriented (Smalltalk) - homoiconic for compile-time metaprogramming (Scheme, Lisp) - dynamic for ru
by andreyf 17y ago
I think so. The big ones I know of being:
- dynamic object oriented (Smalltalk)
- homoiconic for compile-time metaprogramming (Scheme, Lisp)
- dynamic for runtime metaprogramming, like continuations (Scheme, Ruby, Smalltalk)
- functional (Scheme, Haskell)
- strongly typed (Haskell, Scala)
- logical (Prolog)
These are the ones I've come across, but there are more on wikipedia: http://en.wikipedia.org/wiki/Programming_paradigm http://en.wikipedia.org/wiki/Programming_paradigm
- silentbicycle 17y agoThere's some overlap, as well as actor/message-passing concurrency (Erlang), dataflow (Prolog, Oz, etc.), constraint, vector-oriented (APL), etc. Probably a dozen more, depending on where you draw some fine lines. (See CTM for a good overview.) FWIW, Prolog is just as homoiconic as Lisp, and has compile and runtime macros. Still, I was more wondering about teaching methodology, not enumerating paradigms themselves. What could be done to counteract the "standing on the toes of giants" effect?
- andreyf 17y agoI was more wondering about teaching methodology If I understand correctly, I'd imagine teaching everyone to implement languages using a system like Ian Piumarta's COLA might do the trick. The point is to break open these black boxes of abstraction (even though black boxes are good sometimes).