At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
I've found that I'm always learning about Haskell. It's a very interesting language. Are you fluent in lambda calculus and curring?
not fluent i think its a dark area for me i have learned of currying but forgotten what it is I am planning on learning Haskell in autumn
http://learnyouahaskell.com/ will be my study material I tried reading other books from the library but could not decipher their semantics ...
I've been through it before. Have you used a functional language before? It will help to maybe find a primer for the functional paradigm.
no just C which is procedural
any pointers to primers in the functional paradigm
Do you have a strong math background?
I did do it at a uni... is that strong enough, Also A-level Mathametics
A basic aptitude is nessecary to understand the foundations that functional programming is based on. As long as you can read a math text it should be find. http://www.defmacro.org/ramblings/fp.html http://www.haskell.org/haskellwiki/Functional_programming
I haven't been actively studying it, just as a bit of a distraction at work I've been following the tutorials on: http://tryhaskell.org/ Very similar to the tutorials and engine on CodeAcademy
There is absolutely no need to understand the mathematical underpinnings of functional programming to get fp as a concept, in my opinion. Haskell requires it only because most descriptions and tutorials choose to take that route, in part because it's a language whose source is academia. I'd recommend looking at Scala, which is a great hybrid of procedural, object oriented, and functional paradigms. You'll learn how to use things like monads without really having to figure out what in the world they mean, so that you have an intuitive structural grasp of how they work without needing a deep mathematical understanding of the theory behind them. When I jump to Haskell, I know I'll be better prepared because of Scala. By the way, I'm not saying you *shouldn't* learn the mathematical underpinnings, just that you don't have to. I'm not a big math person (by choice more than anything—but then, isn't that always why?), so I'm vehemently opposed to the concept that I need to know the basics of elementary and complex formal analysis just to figure out how addition works. The underlying theory is interesting to know, and it gives you an ability to build abstractions for more advanced mathematical (and therefore language) concepts, but I'm trying to build software, not a programming language ;) I'm also eyeballing ML and OCaml, both of which are great functional languages that I've heard a lot about. Haskell is more pure, supposedly.
I've heard that the lisp family of languages (common lisp, scheme, etc.) are very, very powerful. I wonder how they compare to Haskell and the ML family of functional programming languages, and I will find out soon! :-D
They have a very different approach. Amongst other things, Lisp languages are usually dynamically typed, while the more “pure” functional languages have famously powerful type systems. Additionally, the common factor with Lisp languages is the s-expression syntax and accompanying macros, which the MLs and Haskells of the world definitely do not have (though Haskell I know has compile-time macroish type stuff).
http://www.cs.indiana.edu/~jsobel/c455-c511.updated.txt just an article that shows off Scheme's power :-D
Scheme was on my list of languages but now Haskell has taken precedence as a lot of my friends have suggested it.