<< 1 >>
Rating: Summary: Great Book on Functional Programming Review: Functional programming requires a much different mindset than standard "procedural" languages such as C, Perl, Python, and others. This book does an excellent job of teaching the reader about these concepts.The language of choice (CAML) used in this book requires some effort to learn. Certain elements of its syntax are non-obvious, and the internal type checking can be irritating until you learn that the rigorous checks result in safer programs. (An interesting side-note is that OCaml, compiled to native code, is in most cases very nearly identical in speed to straight C. Visit http://caml.inria.fr for details). This is not an easy book. I found myself flipping to prior chapters to reread sections that I thought I understood on the first pass, but had not. This is no fault of the author, but rather the of the unfamiliar nature of the territory covered. This book covers a lot of ground. As the other reviewer indicates, if you liked SICP, you will like this book. It covers a lot of the same ground, and provides an excellent grounding in various data structures and so forth. One final note. Although the book is a translation from French, I found the english to be perfect. There were no slips into incorrect syntax or confusing idioms. My hat's off to the editor/translator.
Rating: Summary: Great Book on Functional Programming Review: Functional programming requires a much different mindset than standard "procedural" languages such as C, Perl, Python, and others. This book does an excellent job of teaching the reader about these concepts. The language of choice (CAML) used in this book requires some effort to learn. Certain elements of its syntax are non-obvious, and the internal type checking can be irritating until you learn that the rigorous checks result in safer programs. (An interesting side-note is that OCaml, compiled to native code, is in most cases very nearly identical in speed to straight C. Visit http://caml.inria.fr for details). This is not an easy book. I found myself flipping to prior chapters to reread sections that I thought I understood on the first pass, but had not. This is no fault of the author, but rather the of the unfamiliar nature of the territory covered. This book covers a lot of ground. As the other reviewer indicates, if you liked SICP, you will like this book. It covers a lot of the same ground, and provides an excellent grounding in various data structures and so forth. One final note. Although the book is a translation from French, I found the english to be perfect. There were no slips into incorrect syntax or confusing idioms. My hat's off to the editor/translator.
Rating: Summary: Great Book on Functional Programming Review: Functional programming requires a much different mindset than standard "procedural" languages such as C, Perl, Python, and others. This book does an excellent job of teaching the reader about these concepts. The language of choice (CAML) used in this book requires some effort to learn. Certain elements of its syntax are non-obvious, and the internal type checking can be irritating until you learn that the rigorous checks result in safer programs. (An interesting side-note is that OCaml, compiled to native code, is in most cases very nearly identical in speed to straight C. Visit http://caml.inria.fr for details). This is not an easy book. I found myself flipping to prior chapters to reread sections that I thought I understood on the first pass, but had not. This is no fault of the author, but rather the of the unfamiliar nature of the territory covered. This book covers a lot of ground. As the other reviewer indicates, if you liked SICP, you will like this book. It covers a lot of the same ground, and provides an excellent grounding in various data structures and so forth. One final note. Although the book is a translation from French, I found the english to be perfect. There were no slips into incorrect syntax or confusing idioms. My hat's off to the editor/translator.
Rating: Summary: Good on examples of the functional approach to algorithms Review: I have not much to add to the other two reviews. I've read "Structure and Interpretation of Computer Programs" (SICP), and like many others found it one among the best if not *the best* computerbook I've ever read. I think that "The Functional Approach to Programming" differs a lot from SICP. This is not to say, that it's bad, rather that I think it's very different from SICP. Its focus is much more on semantics (ML of course, not Scheme), correctness (in the scientific sense) and algorithms. It offers plenty on the functional approach to implementing algorithms like trees and sets. The semantics are elaborated in a clear and concise style, that I've been able to track even though I have no degree in computer science at all (I'm just an auto didact from "the street"). For someone not familiar with functional programming like me, I find this very good. I have a background in C, Java, C++ moving toward more highlevel languages like Scheme, Lisp, Ruby, SmallTalk and Python in the latter years. It is very succinct with plenty of code examples like SICP. The code doesn't fill too much, since the functional style is a lot shorter for solving complex problems than the equavalent imperative program examples I've seen in C++ and Java. The focus is on the scientific correct thing to do, rather than a more ad hoc focus on "best practices" giving way to a more firm ground for choosing style and algorithms to solve a particular problem. The "best practices" are there of course, but in a transparent way, like small paradigms of code (somewhat like Peter Norvig's "Paradigms of Artificial Intelligence Programming - Case Studies in Common Lisp"). Just to make it clear: I don't think it's fair to compare it with SICP, although their subjects overlap somewhat. Its vocabulary differs significantly from both SICP and the terminology used in OO and Design Patterns land. This is bad in the sense in makes it unnecessary hard to learn the basics. However, if you haven't dealt with functional programming before, you're of course going to encounter the usual paradigm shifting problems. I now find my self thinking a whole new and rather refreshing way about programs. It does pay off, even though it certainly helped that I had read SICP and a lot of articles on the subject at first. Even if I'm never going to use functional programming in my professional life, I've now got a better grasp of algorithms -- what, when and how to use them. It's simply easier to reason about them using the functional approach. By the way: The english translation *is* perfect. Should you read it? I think you should, but prepare yourself to use some time to understand new concepts if you're not familiar with the nomenclature of the functional programming community. Even though it's not easy, I still think it pays off.
Rating: Summary: Good on examples of the functional approach to algorithms Review: I have not much to add to the other two reviews. I've read "Structure and Interpretation of Computer Programs" (SICP), and like many others found it one among the best if not *the best* computerbook I've ever read. I think that "The Functional Approach to Programming" differs a lot from SICP. This is not to say, that it's bad, rather that I think it's very different from SICP. Its focus is much more on semantics (ML of course, not Scheme), correctness (in the scientific sense) and algorithms. It offers plenty on the functional approach to implementing algorithms like trees and sets. The semantics are elaborated in a clear and concise style, that I've been able to track even though I have no degree in computer science at all (I'm just an auto didact from "the street"). For someone not familiar with functional programming like me, I find this very good. I have a background in C, Java, C++ moving toward more highlevel languages like Scheme, Lisp, Ruby, SmallTalk and Python in the latter years. It is very succinct with plenty of code examples like SICP. The code doesn't fill too much, since the functional style is a lot shorter for solving complex problems than the equavalent imperative program examples I've seen in C++ and Java. The focus is on the scientific correct thing to do, rather than a more ad hoc focus on "best practices" giving way to a more firm ground for choosing style and algorithms to solve a particular problem. The "best practices" are there of course, but in a transparent way, like small paradigms of code (somewhat like Peter Norvig's "Paradigms of Artificial Intelligence Programming - Case Studies in Common Lisp"). Just to make it clear: I don't think it's fair to compare it with SICP, although their subjects overlap somewhat. Its vocabulary differs significantly from both SICP and the terminology used in OO and Design Patterns land. This is bad in the sense in makes it unnecessary hard to learn the basics. However, if you haven't dealt with functional programming before, you're of course going to encounter the usual paradigm shifting problems. I now find my self thinking a whole new and rather refreshing way about programs. It does pay off, even though it certainly helped that I had read SICP and a lot of articles on the subject at first. Even if I'm never going to use functional programming in my professional life, I've now got a better grasp of algorithms -- what, when and how to use them. It's simply easier to reason about them using the functional approach. By the way: The english translation *is* perfect. Should you read it? I think you should, but prepare yourself to use some time to understand new concepts if you're not familiar with the nomenclature of the functional programming community. Even though it's not easy, I still think it pays off.
Rating: Summary: A wonderful introduction to (functional) programming Review: I read the french edition of that book and found it to be one of the best book about (functional) programming I know. The authors first quickly introduce the CAML language (an ML variant) and then proceed with real-world examples. The reader will for example learn how to manipulate arbitrary-precision numbers, how to compile regular expressions or how to solve some common games. If you've read and liked Abelson and Sussman's "Structure and Interpretation of Computer Programs", you'll like that book too. I strongly recommend it to anybody interested in CAML or SML, or in functional programming.
<< 1 >>
|