RE: [Haskell-cafe] How did you stumble on Haskell?

From: "Alexy Khrabrov"
To: haskell-cafe@haskell.org Subject: [Haskell-cafe] How did you stumble on Haskell? Date: Sun, 28 Jan 2007 19:01:57 -0800 How do people stumble on Haskell?
-- snip
What's folks most interesting ways to arrive at FP?
Cheers, Alexy
I have been programming other stuff for years (APL, C, Assembly, Visual Basic, Java, C#) and a year or two ago I started thinking of going back to study computing a bit more formally. Reading web pages of lecturers on courses that looked interesting I found a few whose favorite language was a functional programming language called Haskell. I didn't know anything about functional programming so I just moved on. More recently I started to work my way through 'Modern compiler implementation in Java' by Andrew Appel and he seemed keen on functional programming and the book covers extending the basic language to a functional programming language. (I have have read the relevant chapter but not got as far as implementing it yet!) Just before Christmas I decided to investigate Haskell. I got hold of a copy of Graham Hutton's new book 'Programming in Haskell', which I am thoroughly enjoying. Haskell is great fun but as I dig deeper I am finding my lack of mathematical sophistication to be a problem. This leads me off thread to ask if anyone could recommend reading for someone who has done mathematics to college level, but nearly 30 years ago when many English schools didn't cover 20th century mathematics. I thought calculus was about differentiation and integration and was very surprised to discover that there were such things as 'predicate calculus', 'propositional calculus', and various flavours of 'lambda calculus'. I also have little or no idea of set theory, group theory, domain theory, combinatory logic, ... (I can just imagine the surprised looks on the faces of the mathematicians reading this. You never know computer programmers could be so ignorant, did you?) I have no idea how much of this stuff I need to know but I would certainly like to be able to learn more of this facinating new world and not just be content with learning how to write a Haskell program. I just don't know where to start. Thanks, Bob Davison _________________________________________________________________ Turn searches into helpful donations. Make your search count. http://click4thecause.live.com/search/charity/default.aspx?source=hmemtagline_donation&FORM=WLMTAG

Bob Davison
This leads me off thread to ask if anyone could recommend reading for someone who has done mathematics to college level, but nearly 30 years ago when many English schools didn't cover 20th century mathematics. I thought calculus was about differentiation and integration and was very surprised to discover that there were such things as 'predicate calculus', 'propositional calculus', and various flavours of 'lambda calculus'. I also have little or no idea of set theory, group theory, domain theory, combinatory logic, ...
How about "The Haskell Road to Logic, Maths and Programming" by Kees Doets and Jan van Eijck (http://homepages.cwi.nl/~jve/HR/), reviewed by Ralf Lämmel (http://arxiv.org/abs/cs/0512096)? -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig Earth???s crammed with heaven, And every common bush afire with God; But only he who sees, takes off his shoes; The rest sit round it and pluck blackberries. ??? Elizabeth B. Browning

Bob Davison wrote:
I thought calculus was about differentiation and integration and was very surprised to discover that there were such things as 'predicate calculus', 'propositional calculus', and various flavours of 'lambda calculus'.
The stuff involving rates of change, integration, and differentiation, is often called differential calculus, or simply "the calculus". But "calculus" more generically refers to any system of calculation. So the lambda calculus, the various flavours of calculus in symbolic logic, and so on, don't have the word "calculus" in their names because they're related to differential calculus or to each other, but because they're systematic ways to approach calculation.
I have no idea how much of this stuff I need to know
Very little, but exactly how much, and of what, depends on what you want to do. Having a slight grounding in algorithm analysis, an appreciation of induction, and a bottomless pot of coffee is enough to get started.
but I would certainly like to be able to learn more of this facinating new world and not just be content with learning how to write a Haskell program.
If you want a good grounding in thinking about functional code, I like Okasaki's "Purely Functional Data Structures". Graham, Knuth and Patashnik's "Concrete Mathematics" is a good CS-related book that covers a lot of ground at a leisurely pace.
participants (3)
-
Bob Davison
-
Bryan O'Sullivan
-
Chung-chieh Shan