"[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes: > > > * C > > > * A static functional language (ML, Haskell, etc) > > > * Lisp or scheme Scheme > > > * A static class-oriented language (Java, C++, etc) > > > * A dynamic OO language (Python, ruby, smalltalk, etc) > > > > > > and at least a brief look at, say, Forth and Prolog. > > > > Interesting list. Of those, I've done tons of C, just enough lisp to get > > the feel of it, lots of C++, and of course Python. I've never done any > > functional stuff. > > You should. It's very enlightening.
Very interesting post and list. I think I'd add at least one assembly language. I hate to say it but I think I'd remove Python. As much as Python has helped me get useful and practical things done, from a learning point of it, as much as the developers deny it, I'd say it's basically an OO Lisp dialect with syntax sugar. I found it completely natural and pleasant to program in almost immediately, because I'd already been using Lisp and Java. I haven't used Smalltalk or Ruby so can't comment. I wonder why you chose ML over Haskell in a few other posts. Haskell seems more mind-expanding (as someone put it) to me because of its pervasive lazy evaluation. The "streams" examples in SICP, and the numerical computation examples in Hughes' famous paper "Why Functional Programming Matters" (google for it) show how powerful this can be. I've been wanting to rewrite Hughes' examples using Python generators, just for fun. Finally, the Haridi/van Roy Mozart/Oz book has come up on clpy numerous times, so should certainly be mentioned in a thread like this: http://www.info.ucl.ac.be/~pvr/book.html -- http://mail.python.org/mailman/listinfo/python-list