Real World Haskell - Bryan O'Sullivan, John Goerzen, Don Stewart

Real World Haskell

Bryan O'Sullivan, John Goerzen, Don Stewart

出版时间

2008-12-01

ISBN

9780596514983

评分

★★★★★
书籍介绍
This easy-to-use, fast-moving tutorial introduces you to functional programming with Haskell. Learn how to use Haskell in a variety of practical ways, whether it's for short, script-like programs or large and demanding applications. Written for experienced programmers, Real World Haskell takes you through the basics of functional programming at a brisk pace, and helps you increase your understanding of Haskell in real-world issues like I/O, performance, dealing with data, concurrency, and more as you move through each chapter. With this book, you will: Understand the difference between procedural and functional programming Learn about Haskell's compiler, interpreter, values, simple functions, and types Find your way around Haskell's library -- and write your own Use monads to express I/O operations and changes in state Interact with databases, parse files and data, and handle errors Discover how to use Haskell for systems programming Learn concurrency and parallel programming with Haskell You'll find plenty of hands-on exercises, along with examples of real Haskell programs that you can modify, compile, and run. If you've never used a functional language before, and want to understand why Haskell is now coming into its own as a practical language in so many major organizations, Real World Haskell is the place to start.
AI导读
核心看点
  • 面向有经验程序员,快速切入函数式编程实战
  • 涵盖IO、并发、性能优化等真实世界开发难题
  • 通过大量实例解析Haskell核心概念与库使用
适合谁读
  • 具备过程式编程基础,想转战函数式编程者
  • 希望了解Haskell在工程实践中应用能力的开发者
  • 不满足于玩具示例,追求解决实际问题能力的程序员
读前提醒
  • 书中部分代码示例陈旧,需结合新版库自行调整
  • 作者行文跳跃,部分错误较多,建议配合其他资料
  • 不适合纯新手入门,建议先掌握基础语法再阅读
读者共识
  • 实战技巧丰富,但部分章节讲解晦涩且存在错误
  • 相比官方文档更贴近人类阅读,但深度有限
  • 适合当作工具书查阅,不建议从头到尾线性阅读

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "4.Modify the WC.hs example again, to print the number of characters in a file."
  • "Don't expect to understand this yet; it's just fun to get our hands dirty."
  • "In Haskell, we de-emphasise code that modifies data. Instead, we focus on functions that take immutable values as input and produce new values as output. Given the same inputs, these functions always return the same results. This is a core idea behind functional programming."
  • "Lazy evaluation has some spooky effects. Let's say we want to find the k least-valued elements of an unsorted list. In a traditional language, the obvious approach would be to sort the list and take the first k elements, but this is expensive. For efficiency, we would instead write a special functio"
  • "Many traditional languages further blur the already indistinct boundary between concurrent and parallel programming, because they force programmers to use the same primitives to construct both kinds of programs. Another useful distinction between concurrent and parallel programs lies in their intera"
  • "* If no other thread concurrently modifies the same data as us, all of our modifications will simultaneously become visible to other threads. * Otherwise, our modifications are discarded without being performed, and our block of actions is automatically restarted."
  • "The record that we use to track an unevaluated expression is referred to as a _thunk_"
作者简介
Bryan O'Sullivan is an Irish hacker and writer who likes distributed systems, open source software, and programming languages. He was a member of the initial design team for the Jini network service architecture (subsequently open sourced as Apache River). He has made significant contributions to, and written a book about, the popular Mercurial revision control system. He lives in San Francisco with his wife and sons. Whenever he can, he runs off to climb rocks. Don Stewart is an Australian hacker, currently completing his computer science doctorate at the University of New South Wales, Sydney. Don has been involved in a diverse range of Haskell projects, including practical libraries such as Data.ByteString and Data.Binary, as well applying the Haskell philosophy to real world applications, including compilers, linkers, text editors, network servers and systems software. His recent work has focused on optimising Haskell for high-performance scenarios, using techniques from term rewriting. He is the current editor of the Haskell Weekly News. John Goerzen is an American hacker and author. He has written a number of real-world Haskell libraries and applications, including the HDBC database interface, the ConfigFile configuration file interface, a podcast downloader, and various other libraries relating to networks, parsing, logging, and POSIX code. John has been a developer for the Debian GNU/Linux operating system project for over 10 years and maintains numerous Haskell libraries and code for Debian. He also served as President of Software in the Public Interest, Inc., the legal parent organization of Debian. John lives in rural Kansas with his wife and son, where he enjoys photography and geocaching.
用户评论
读完才发现-掉尼玛天坑里面去了,这书就是个开胃小菜啊。Haskell本身的复杂程度爆C++半条街。
这本书相当的厚,六百多页,我是读了好久。缺点是不适合初学者,错误的地方也比较多,讲解也不是很明白。优点是实战技巧很多,尤其是剖析和优化代码有一套很好的方法和工具。
这本书对语言本身的介绍稍微少了一点.
挑着对我有用的读了读。。感觉在类型方面想要吃透肯定还需要其他书作补充的
好书!
写个简单的parser真是检测基本功力的方式....
不推荐。 funcprog写realworld的东西,一方面无比复杂罗嗦,一方面失去了funcprog的美。故不建议看这本书。 @2011-04-24 12:30:06
http://cnhaskell.com/
看完 Learn You a Haskell for Great Good! 这本书后再看这本会比较轻松, 这本书主要是介绍如何运用 haskell 各种库, 并不适合入门 haskell,以及了解 haskell 的语言特点
用来入门可以,不推荐有一定Haskell基础后的深入,因为真的有点复杂啰嗦。
收藏