On Wed, 2010-05-05 at 17:18 -0400, Kyle Murphy wrote: > Concerning your second point, I think just about any functional > language isn't going to be simple or quick to learn. It's simply not a > way of approaching problems that your average person (even your > average programmer) is used to dealing with. Things like fold and map, > the work horses of functional programming, are simply too foreign to > most peoples imperative way of approaching problems. > > -R. Kyle Murphy
Sorry - I wanted to respond to many posts in this thread but I choose the first post: 1. While doing fold/map may not be what is simple for average programmer I guess pattern matching/some HL functions can be relatively simple for others (pureness on the other hand do not). For example average person thinks "Add 1 to each element of list". Imperative way: for i = 0 to l.length: l[i] = l[i] + 1 # WTF? There is no x such that x = x + 1 Functional way: callOnEvery _ [] = [] callOnEvery f (x:xs) = f x:xs -- Built-in function 'map' -- Name could be 'better' add1 x = x + 1 add1ToEachElement xs = callOnEvery add1 xs Please note that I heard about person who wrote 'awesome game' in .exe file (definitely _declarative_ style of programming ;) ) and expected it to run ;) [Although fortunately it was 'hobbiest']. 2. Lisp readability depends much on formatting. While I cannot write LISP I'm usually able to read it) (defun hello-world () (format t "hello, world")) Is a merge between: def hello_world(): print "hello, world" and void hello_world() { println("hello, world") } Of course you can write obfuscation competition entries in LISP. 3. For the list of universities that first teaches functional programming - ICL begins with Haskell and from non-imperative languages Prolog is in the first year curriculum. Regards
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe