Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this questionI've heard it's better to read the first edition of "Introduction to Functional Programming" by Bird & Wadler than the second edition. The first edition uses Miranda, and the second edition uses Haskell.
开发者_开发百科Is this a common recommendation? My goal is to get serious about functional programming. Thoroughly knowing the concepts of functional programming is more important to me than knowing a language's syntax, so I'm fine with learning Miranda if the first edition is somehow better.
I know F# and Scala.
I strongly recommend the second edition, which is an extensively revised, extended and mostly improved revision of the first edition. I have read both editions. The first edition has an example on solving the 8 queens problem with backtracking, unfortunately this example was dropped in the second edition. The second edition is my favourite book on Haskell.
The examples are from mathematics, including proof by induction. The material on deriving programs from their specifications by Bird in the second edition is awesome, I love this book. If you can handle examples from maths, this book is superb.
I think this book is also a great introductory text on Haskell, however I found that as soon as I tried writing Haskell programs that I often had to read material from other tutorials, and kept having to refer to Real World Haskell.
Another great text on mathematics and logic, with examples using Haskell that helps to understand the maths, is the Haskell Road to Logic, Maths and Programming. Bird's text goes much deeper on Haskell programming.
I haven't read Bird & Wadler, but Miranda and Haskell are similar--purely functional, nonstrict, statically typed, etc. If language is your only consideration when choosing the edition, I'd choose Haskell because it's more popular and free, and hence easier to get hands-on experience with.
I haven't used Miranda, but my understanding is that it's the primary predecessor to Haskell and that Haskell would not have existed unless its creator had closed the source and tried to make it a commercial product. It's still referred to as MirandaTM sometimes because of this.
I used Haskell, it is a purely functional language and it is pretty standard. I don't remember Miranda very well but I think that is not purely functional, same as F# and Scala. My sugestion is learn the pure way, it is probaly the hardest but don't take any shortcut with functional programming, that way you will never learn it as it's finest. And as far as I know, Miranda has very little adoption and Haskell has grown steadly over the years.
Yes, you should read the first or second edition of “Introduction to Functional Programming” by Bird & Wadler.
(I mean the inclusive or)
精彩评论