Haskell趣学指南 - [斯洛文尼亚] Miran Lipovaca

Haskell趣学指南

[斯洛文尼亚] Miran Lipovaca

出版时间

2013-12-31

ISBN

9787115335593

评分

★★★★★
AI导读
核心看点
  • 幽默插图与通俗语言,降低函数式编程入门门槛
  • 系统讲解Haskell语法、类型系统及Monad等核心概念
  • 示例短小清晰,结构合理,适合零基础读者循序渐进
适合谁读
  • 对函数式编程感兴趣,希望系统学习Haskell的开发者
  • 具备其他编程语言基础,想拓展思维模式的程序员
  • 喜欢轻松幽默风格,畏惧枯燥理论教材的初学者
读前提醒
  • 后半部分概念抽象,建议耐心反复阅读,结合代码实践
  • 部分翻译略显生硬,建议对照英文原版理解幽默语境
  • 书中侧重理论引导,需自行补充实际项目应用经验
读者共识
  • 公认最好的Haskell入门书之一,阅读过程充满乐趣
  • Monad讲解虽有争议,但整体深入浅出,适合新手建立直觉
  • 读完可大幅提升编程思维,建议搭配其他资料巩固实战

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

精彩摘录
  • "我们看到如何在函子值上映射“多参数”函数得到函数值的函子值。我们能对它做什么吗?对于一个参数,我们可以映射一个函数,它接受某个函数为参数,给这个函数应用一个参数。因为函子值里的任何东西都会被作为参数传递给我们的函数。"
  • "_ means that we don't care what we'll draw from the list anyway so instead of writing a variable name that we'll never use, we just write _."
  • "Use tuples when you know in advance how many components some piece of data should have. Tuples are much more rigid because each different size of tuple is its own type, so you can't write a general function to append an element to a tuple — you'd have to write a function for appending to a pair, one"
  • "In our gcd' function, the logging is fast because the list appending ends up looking like this: a ++ (b ++ (c ++ (d ++ (e ++ f)))) Lists are a data structure that's constructed from left to right, and this is efficient because we first fully construct the left part of a list and only then add a long"
  • "Function application has the highest precedence of all the operations in Haskell. In other words, these two statements are equivalent."
  • "This example introduces Haskell’s if statement. You’re probably already familiar with if statements from other languages, but what makes Haskell’s unique is that the else part is mandatory. On the other hand, a Haskell program is a collection of functions. Func- tions are used to transform data valu"
  • "Accessing List Elements If you want to get an element of a list by index, use the !! operator. As with most programming languages, the indices start at 0:"
  • "multThree :: Int -> Int -> Int -> Int multThree x y z = x * y * z"
作者简介
Miran Lipovaca 斯洛文尼亚共和国卢布尔雅那城的一位计算机科学专业的学生。除了对Haskell的狂热,他还喜欢拳击,玩低音吉他,当然还有画画。 译者介绍 李亚舟 毕业于山东理工大学,现就职于IBM LTC,从事Linux发行版相关工作。对内核、体系结构、编程语言及技术翻译有浓厚兴趣,敬仰那些孜孜不倦地精益求精的人们。 宋方睿 本科生,清华大学开源镜像站维护者,blue-lotus战队成员,热爱算法和程序设计语言理论,关注高性能计算、自然语言处理及前端技术。个人博客http://maskray.me。
目录
《haskell趣学指南》
第1章 各就各位,预备! 1
1.1 调用函数 3
1.2 小朋友的第一个函数 4
1.3 列表入门 6

显示全部
用户评论
Haskell入门学习最受喜爱的一本书,在亚马逊上也是最热评的Haskell主题的书。能快速建立起Haskell的整体认知;对使用注意、设计原因、最佳实践和关键概念有很多用心良苦的提点;图文并茂、循序渐进和风趣幽默的讲解很有特色;看了很有安全感,非常不错!这本开启了『Learn You a Xxx for Great Good!』/『Xxx趣学指南』的讲解传授风格。
后半部分反复读了好几遍才懂,是不是我智商太低了?
看了两遍。最终都停在monad了,等搞清monad和applicative意义回来再战
俏皮话不是一般的多,译者还基本都直译了。当然这不是关键。我还没读完,这本书到底能不能教会我haskell,我还不知道……
总觉得缺点啥.
简单看了一下,没太看明白
在网页看的英文原版。非常好的一本haskell教学书,让你在不懂范畴论和抽象代数的情况下也能对函数式编程有一个粗浅的理解。书中的代码例子都是短小简洁又不失范例作用。希望别的编程语言也能有类似的书籍。
上过cis194才知道这本书的好,我是把haskell当成更purity,更referential transparency,semantics more lazy的sml去学的,主要区别在于typeclass sementics,functor,applictive,monad的部分。typeclass要抓住ad hoc polymorphism,parametric polymorphism也就是特设多态和有限多态去理解,很喜欢functor盒子的比喻,更深入的"monad是自函子上的幺半群"就需要一些范畴论的知识了。本书不足之处在于没有课后题,可以和cis194搭配使用,另外,本书除了多了几张申必插图外,似乎和"趣学"无关(?)
可以作为入门前的了解读物
过誉
下载
收藏