Home - Functional
The Haskell School of Expression: Learning Functional Programming through Multimedia
Price:
$30.00
$53.00
& 2-Day * Free Nationwide Shipping! (* details)
Availability: Usually ship in 24 hours if sold by Amazon.com
Product Details
| Binding: | Paperback |
|---|---|
| EAN: | 9780521644082 |
| Label: | Cambridge University Press |
| Feature: | |
| Publisher: | Cambridge University Press |
| Studio: | Cambridge University Press |
Editorial Reviews
Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recent years because of its simplicity, conciseness, and clarity. This book teaches functional programming as a way of thinking and problem solving, using Haskell, the most popular purely functional language. Rather than using the conventional (boring) mathematical examples commonly found in other programming language textbooks, the author uses examples drawn from multimedia applications, including graphics, animation, and computer music, thus rewarding the reader with working programs for inherently more interesting applications. Aimed at both beginning and advanced programmers, this tutorial begins with a gentle introduction to functional programming and moves rapidly on to more advanced topics. Details about progamming in Haskell are presented in boxes throughout the text so they can be easily found and referred to.
Customer Reviews
As an experienced programmer new to Haskell I found this book both enlightening and frustrating. The author does a superb job of teaching you how to think like a functional programmer, his stated goal, but occasionally leaps over too many steps for a beginner to follow his implementations. The book is however quite readable and works well in conjunction with the various on-line tutorials on Haskell syntax. I'd recommend the book for anyone looking to get into serious functional programming.
This book takes a nice approach to teaching functional programming. Paul Hudak uses fun examples, with applications to multimedia. Early on you are using the graphics library to make shapes in windows, and by the end there is Haskore, a cool way to compose music. However, these examples are not JUST fun, they also serve as nice examples of how to think about and construct functional programs, in domains where functional programs really excel. If you ever thought about learning what this stuff was about, this book is the right choice!
C, Java, Pascal, Ada, and so on, are all imperative languages. They are "imperative" in the sense that they consist of a sequence of commands, which are executed strictly one after the other. Haskell is a functional language. A functional program is a single expression, which is executed by evaluating the expression. Anyone who has used a spreadsheet has experience of functional programming. In a spreadsheet, one specifies the value of each cell in terms of the values of other cells. The focus is on what is to be computed, not how it should be computed.
This book is a unique attempt to teach the reader the Haskell programming language by demonstrating how to write programs that perform interesting tasks such as animation, graphics, robot control, and functional music composition. The book succeeds at introducing the reader to the Haskell language and the idea of functional programming, and the book is a fascinating read with unique projects performed in the Haskell language. This is particularly true if you are interested in multimedia programming. However, intermediate features of the language are brushed over. If you are already familiar with Haskell, this book will teach you interesting ways to look at functional programming and give you some ideas for some interesting projects. If you are new to Haskell, you are going to find yourself somewhat confused when you get to the more advanced material. I therefore recommend that you read this book along with "Haskell:The Craft of Functional Programming" by Thompson. That book is not nearly as interesting as this book, but it fills in all of the intermediate details that are missing in a very detailed manner.
This book is a unique attempt to teach the reader the Haskell programming language by demonstrating how to write programs that perform interesting tasks such as animation, graphics, robot control, and functional music composition. The book succeeds at introducing the reader to the Haskell language and the idea of functional programming, and the book is a fascinating read with unique projects performed in the Haskell language. This is particularly true if you are interested in multimedia programming. However, intermediate features of the language are brushed over. If you are already familiar with Haskell, this book will teach you interesting ways to look at functional programming and give you some ideas for some interesting projects. If you are new to Haskell, you are going to find yourself somewhat confused when you get to the more advanced material. I therefore recommend that you read this book along with "Haskell:The Craft of Functional Programming" by Thompson. That book is not nearly as interesting as this book, but it fills in all of the intermediate details that are missing in a very detailed manner.
This text is nicely produced and has some interesting examples of Haskell programming. However, the book is mainly examples of Haskell and functional programming rather than explanations of Haskell and FP. The exposition is spotty and assumes a lot. It would best be considered a second book for those learning Haskell.
I already knew Haskell when I started reading this book, but it held my interest right through to the end. This is largely due to Hudak's choice of interesting application domains (graphics, animation, robotics, music) and how neatly applications in these domains can be expressed in Haskell. (As an advanced reader, I was particularly interested in the treatment of the design and implementation of his functional animation language.) More than just that, though, the book's success derives from a very nice blending of theory and practice. I especially liked his use of calculational reasoning as a approachable form of program proof. I highly recommend this book if you want to learn functional programming--tastefully--and have fun while doing it.
This book is well thought out and well written, but makes a poor introduction to Haskell. The first few chapters are great as the author spends a lot of time laying the foundation of functional programming and Haskell. However, the author skips the intermediate level items and goes straight to the more difficult aspects without enough explanation. I simply could not follow many of the later examples. Furthermore, some of the chapters did not introduce any new concepts and instead were there only to complete the examples - something I found frustrating as that space could have been used to better describe some of the concepts. All in all this could be a good book for more advanced Haskellers looking for real world examples, but I would shy away from it.
in general, and if you don't know Haskell, OCaML, ML, or F#, then you really should buy this book and work through it.
A generation ago, Abelson and Sussman wrote "Structure and Interpretation of Computer Programs," which brought world-shaping clarity to programming in the form of a generic, functional approach. In the time since then, "types" and "lazy evaluation" have fundamentally improved that overall approach, and Haskell is the rightful successor to Scheme as the best-of-breed of functional programming languages. That said, types and lazy evaluation are somewhat tricky to learn, and this book offers a fun and easy way to do it.
The software needed to run the samples in the book is free and works on Windows platforms (and possibly some others).
Buy it, work through every word of it, you won't regret it :)
A generation ago, Abelson and Sussman wrote "Structure and Interpretation of Computer Programs," which brought world-shaping clarity to programming in the form of a generic, functional approach. In the time since then, "types" and "lazy evaluation" have fundamentally improved that overall approach, and Haskell is the rightful successor to Scheme as the best-of-breed of functional programming languages. That said, types and lazy evaluation are somewhat tricky to learn, and this book offers a fun and easy way to do it.
The software needed to run the samples in the book is free and works on Windows platforms (and possibly some others).
Buy it, work through every word of it, you won't regret it :)
The concepts in the book are great. It is fairly easy to follow. The problem is most of the examples are based upon a graphics library that doesn't exist any longer. It would be great if there was a second edition, which updated the examples.
I have to agree with a variety of reviewers who describe this book as an excellent read but not a good place to learn Haskell. What this book will do is give the reader an excellent understanding of functional programming, but descriptions of nitty gritty language details are lacking. I feel that were it not the case that I already hold some familiarity with standard ML (a language that looks and feels very similar to Haskell) I would be completely lost for lack of rigorous discourse on pattern matching, type inference and higher order functions. The author seems to assume that the reader holds specific prior knowledge on a variety of topics which I think would be cumbersome to a reader without prior functional programming exposure (specifically languages loosely describable as "in the ML family").
All that being said, I do find the book a delightful read. So long as a potential reader use this as supplemental material rather than foundational material the text worth a look. Indeed the criticism that I and others have leveled assumes a specific intent on the part of the author that may not be what the author had in mind. This book is an excellent high level look at how one versed in imperative or object oriented programming can shift their thinking into solving problems with functional mechanisms.
I personally see the need for learning functional programming as a response to more and more languages incorporating functional paradigms into their tool set, particularly the high level scripting languages that have jumped in popularity of late. Even the STL and auxiliary libraries of C++ have an interesting emphasis on higher order functions and the composition thereof that makes a foundation in functional programming worth looking into. This book is an excellent place to look into how functional programming is applied, but I recommend looking elsewhere for details specific to the Haskell programming language.
All that being said, I do find the book a delightful read. So long as a potential reader use this as supplemental material rather than foundational material the text worth a look. Indeed the criticism that I and others have leveled assumes a specific intent on the part of the author that may not be what the author had in mind. This book is an excellent high level look at how one versed in imperative or object oriented programming can shift their thinking into solving problems with functional mechanisms.
I personally see the need for learning functional programming as a response to more and more languages incorporating functional paradigms into their tool set, particularly the high level scripting languages that have jumped in popularity of late. Even the STL and auxiliary libraries of C++ have an interesting emphasis on higher order functions and the composition thereof that makes a foundation in functional programming worth looking into. This book is an excellent place to look into how functional programming is applied, but I recommend looking elsewhere for details specific to the Haskell programming language.
This is a good book... However, I wish I hadn't bought it. It seems to focus too much on geometry and multimedia, which is not that interesting to me. (Yes, I knew that when I bought the book).
Anyway, my problem with it is that it seems more suited to someone who'll learn in a "linear" way, going through all chapters (maybe because functions defined in previous chapters are used in the others). I'd rather get a book with self-contained chapters (for example, I've learned Lisp with Peter Seibel's "Practical Common Lisp", and I jumped around, reading chapters as I felt like, or as I needed them). But it's great if you don't mind having to go through all of it.
Maybe it's me, I don't know. I just didn't really like it.
Anyway, my problem with it is that it seems more suited to someone who'll learn in a "linear" way, going through all chapters (maybe because functions defined in previous chapters are used in the others). I'd rather get a book with self-contained chapters (for example, I've learned Lisp with Peter Seibel's "Practical Common Lisp", and I jumped around, reading chapters as I felt like, or as I needed them). But it's great if you don't mind having to go through all of it.
Maybe it's me, I don't know. I just didn't really like it.
I found this the most Haskell'ish of the Haskell books I have read; succinct, concise, compact, in fact, very much in the spirit of Haskell itself. The author's writing style is clear and distilled with very little redundancy. For these reasons I keep this small volume in a special place on my large shelf of programming language books.
In agreement with other reviewers, this is not an optimal first Haskell book. The approach that worked best for me when ramping-up with Haskell was to use this text in combination with online tutorials and the O'Reilly "Real World Haskell" volume. This provided a good balance of essence, philosophy, coverage and practicality.
This book might have been a good contender for the title of "The Joy of Haskell". I enjoyed it and will keep referring back in moments when I want to recapture core functional programming concepts that apply not only to Haskell but to the functional programming genre as a whole.
In agreement with other reviewers, this is not an optimal first Haskell book. The approach that worked best for me when ramping-up with Haskell was to use this text in combination with online tutorials and the O'Reilly "Real World Haskell" volume. This provided a good balance of essence, philosophy, coverage and practicality.
This book might have been a good contender for the title of "The Joy of Haskell". I enjoyed it and will keep referring back in moments when I want to recapture core functional programming concepts that apply not only to Haskell but to the functional programming genre as a whole.
Granted I am new to Haskell and to some degree functional programming. I thought this book would be really cool, pretty much an ideal book on a subject matter that I am very interested in. The text is definitely easy to follow for the most part, but WHY, WHY use a 'Times new roman' type font for the code samples? The code samples are basically in the same font as the text only in italics, making it hard to figure out what is supposed to be whitespace, which I find a pretty strange decision for a textbook on a language where layout matters...
I admit, I did not read the book very much. I looked through it and the format of everything was really weird. The code snippets used characters one cannot type in what seemed to me to be a variable width font. It bothered me for some reason.
Share your thoughts with other customers
Create your own review
Create your own review



