Lesson 1 Getting started with Haskell
Unit 1 - FOUNDATIONS OF FUNCTIONAL PROGRAMMING
Lesson 2 Functions and functional programming
Lesson 3 Lambda functions and lexical scope
Lesson 4 First-class functions
Lesson 5 Closures and partial application
Lesson 6 Lists
Lesson 7 Rules for recursion and pattern matching
Lesson 8 Writing recursive functions
Lesson 9 Higher-order functions
Lesson 10 Capstone: Functional object-oriented programming with robots!
Unit 2 - INTRODUCING TYPES
Lesson 11 Type basics
Lesson 12 Creating your own types
Lesson 13 Type classes
Lesson 14 Using type classes
Lesson 15 Capstone: Secret messages!
Unit 3 - PROGRAMMING IN TYPES
Lesson 16 Creating types with "and" and "or"
Lesson 17 Design by composition—Semigroups and Monoids
Lesson 18 Parameterized types
Lesson 19 The Maybe type: dealing with missing values
Lesson 20 Capstone: Time series
Unit 4 - IO IN HASKELL
Lesson 21 Hello World!—introducing IO types
Lesson 22 Interacting with the command line and lazy I/O
Lesson 23 Working with text and Unicode
Lesson 24 Working with files
Lesson 25 Working with binary data
Lesson 26 Capstone: Processing binary files and book data
Unit 5 - WORKING WITH TYPE IN A CONTEXT
Lesson 27 The Functor type class
Lesson 28 A peek at the Applicative type class: using functions in a context
Lesson 29 Lists as context: a deeper look at the Applicative type class
Lesson 30 Introducing the Monad type class
Lesson 31 Making Monads easier with donotation
Lesson 32 The list monad and list comprehensions
Lesson 33 Capstone: SQL-like queries in Haskell
Unit 6 - ORGANIZING CODE AND BUILDING PROJECTS
Lesson 34 Organizing Haskell code with modules
Lesson 35 Building projects with stack
Lesson 36 Property testing with QuickCheck
Lesson 37 Capstone: Building a prime-number library
Unit 7 - PRACTICAL HASKELL
Lesson 38 Errors in Haskell and the Either type
Lesson 39 Making HTTP requests in Haskell
Lesson 40 Working with JSON data by using Aeson
Lesson 41 Using databases in Haskell
Lesson 42 Efficient, stateful arrays in Haskell
Afterword - What's next?
Appendix - Sample answers to exercise
· · · · · · (
收起)
1 有用 正义的伙伴 2020-07-31 22:57:52
英语问题不大,读了一多半,只剩下应用了。这本书里知识部分讲得可能不多,但知识屏蔽做得挺好的。
2 有用 到此一游 e/acc 2020-07-08 08:07:04
终于能腾出时间读一读这本书了。。;好好学习人家的写作风格。。。;
0 有用 Icarus 2021-11-25 10:50:32
通俗易懂
2 有用 黄板龙凉茶 2019-02-11 08:40:23
很棒的fp入门书,errata在这里 https://forums.manning.com/posts/list/43142.page
1 有用 Eric Zhao 2019-02-10 08:58:53
自己不是functional programming的粉,就入门技术书的类别来说,这是一本很好的入门书了。
1 有用 悠然 2024-05-20 16:36:23 广东
难得把Functor/Applicative/Monad的意义和协同讲的非常清楚。都是为了支持代码happy path的打包能力,Functor是从happy path自动升阶到各种错误判断,但只支持1个入参,Applicative通过haskell自有的partial application,扩展到多参数,Monad支持那种输入是原参,输出是打包的函数来升阶。既避免了冗余的错误验证,又对IO等有... 难得把Functor/Applicative/Monad的意义和协同讲的非常清楚。都是为了支持代码happy path的打包能力,Functor是从happy path自动升阶到各种错误判断,但只支持1个入参,Applicative通过haskell自有的partial application,扩展到多参数,Monad支持那种输入是原参,输出是打包的函数来升阶。既避免了冗余的错误验证,又对IO等有副作用的代码进行了隔离,一举多得。书写的非常清晰,重点突出,难得。Rust从里面抠出了Result(Either)和Option(Maybe),但没法搞到这些monad什么的,感觉主要还是因为本身不支持curry,但写代码的时候,其实用?操作也能做到happy path,也算是用心良苦。 (展开)
0 有用 时光旧好 2022-02-03 19:42:08
循序渐进,由浅入...门.
0 有用 lagom 2021-12-11 17:30:55
🉑
0 有用 Icarus 2021-11-25 10:50:32
通俗易懂
1 有用 huyan00 2021-05-04 20:00:25
提出问题-引入工具-解决问题,目前看的最好的第一本书