没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Contents
Contents 2
License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Authors’ preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Why This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
A few words to new programmers . . . . . . . . . . . . . . . . . 24
Haskevangelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
What’s in this book? . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Best practices for examples and exercises . . . . . . . . . . . . 30
1 All You Need is Lambda 33
1.1 All You Need is Lambda . . . . . . . . . . . . . . . . . . . . 34
1.2 What is functional programming? . . . . . . . . . . . . . 34
1.3 What is a function? . . . . . . . . . . . . . . . . . . . . . . . 35
1.4 The structure of lambda terms . . . . . . . . . . . . . . . 37
1.5 Beta reduction . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.6 Multiple arguments . . . . . . . . . . . . . . . . . . . . . . 42
1.7 Evaluation is simplification . . . . . . . . . . . . . . . . . . 45
1.8 Combinators . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.9 Divergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.10 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
1.11 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 48
1.12 Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.13 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
1.14 Follow-up resources . . . . . . . . . . . . . . . . . . . . . . 53
2 Hello, Haskell! 55
2.1 Hello, Haskell . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2
CONTENTS 3
2.2 Interacting with Haskell code . . . . . . . . . . . . . . . . 56
2.3 Understanding expressions . . . . . . . . . . . . . . . . . . 59
2.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.5 Infix operators . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.6 Declaring values . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.7 Arithmetic functions in Haskell . . . . . . . . . . . . . . . 76
2.8 Negative numbers . . . . . . . . . . . . . . . . . . . . . . . 80
2.9 Parenthesizing infix functions . . . . . . . . . . . . . . . . 81
2.10 Laws for quotients and remainders . . . . . . . . . . . . 83
2.11 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.12 Let and where . . . . . . . . . . . . . . . . . . . . . . . . . . 85
2.13 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 90
2.14 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.15 Follow-up resources . . . . . . . . . . . . . . . . . . . . . . 98
3 Strings 99
3.1 Printing strings . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.2 A first look at types . . . . . . . . . . . . . . . . . . . . . . . 100
3.3 Printing simple strings . . . . . . . . . . . . . . . . . . . . 101
3.4 Types of concatenation functions . . . . . . . . . . . . . 106
3.5 Concatenation and scoping . . . . . . . . . . . . . . . . . 109
3.6 More list functions . . . . . . . . . . . . . . . . . . . . . . . 111
3.7 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 112
3.8 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4 Basic datatypes 118
4.1 Basic Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.2 Anatomy of a data declaration . . . . . . . . . . . . . . . 119
4.3 Numeric types . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.4 Comparing values . . . . . . . . . . . . . . . . . . . . . . . 126
4.5 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4.6 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.7 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 138
4.8 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5 Types 144
5.1 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.2 What are types? . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.3 Querying and Reading Types . . . . . . . . . . . . . . . . 148
CONTENTS 4
5.4 Typeclass constrained type variables . . . . . . . . . . . 150
5.5 Currying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5.6 Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . 164
5.7 Type inference . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.8 Asserting types for declarations . . . . . . . . . . . . . . . 173
5.9 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 175
5.10 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
5.11 Follow-up resources . . . . . . . . . . . . . . . . . . . . . . 186
6 Typeclasses 187
6.1 Typeclasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
6.2 What are typeclasses? . . . . . . . . . . . . . . . . . . . . . 188
6.3 Back to Bool . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.4 Eq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.5 Num . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.6 Type-defaulting typeclasses . . . . . . . . . . . . . . . . . 196
6.7 Ord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
6.8 Enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.9 Show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.10 Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
6.11 Instances are dispatched by type . . . . . . . . . . . . . . 210
6.12 Writing typeclass instances . . . . . . . . . . . . . . . . . . 214
6.13 Gimme more operations . . . . . . . . . . . . . . . . . . . 225
6.14 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 229
6.15 Chapter Definitions . . . . . . . . . . . . . . . . . . . . . . 235
6.16 Typeclass inheritance, partial . . . . . . . . . . . . . . . . 237
6.17 Follow-up resources . . . . . . . . . . . . . . . . . . . . . . 237
7 More functional patterns 238
7.1 Make it func-y . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7.2 Arguments and parameters . . . . . . . . . . . . . . . . . 239
7.3 Anonymous functions . . . . . . . . . . . . . . . . . . . . . 245
7.4 Pattern matching . . . . . . . . . . . . . . . . . . . . . . . . 248
7.5 Case expressions . . . . . . . . . . . . . . . . . . . . . . . . 257
7.6 Higher-order functions . . . . . . . . . . . . . . . . . . . . 260
7.7 Guards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
7.8 Function composition . . . . . . . . . . . . . . . . . . . . . 274
7.9 Pointfree style . . . . . . . . . . . . . . . . . . . . . . . . . . 278
7.10 Demonstrating composition . . . . . . . . . . . . . . . . . 280
CONTENTS 5
7.11 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 283
7.12 Chapter Definitions . . . . . . . . . . . . . . . . . . . . . . 287
7.13 Follow-up resources . . . . . . . . . . . . . . . . . . . . . . 294
8 Recursion 295
8.1 Recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
8.2 Factorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
8.3 Bottom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
8.4 Fibonacci numbers . . . . . . . . . . . . . . . . . . . . . . . 306
8.5 Integral division from scratch . . . . . . . . . . . . . . . . 309
8.6 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 314
8.7 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
9 Lists 320
9.1 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
9.2 The list datatype . . . . . . . . . . . . . . . . . . . . . . . . 321
9.3 Pattern matching on lists . . . . . . . . . . . . . . . . . . . 322
9.4 List’s syntactic sugar . . . . . . . . . . . . . . . . . . . . . . 324
9.5 Using ranges to construct lists . . . . . . . . . . . . . . . . 325
9.6 Extracting portions of lists . . . . . . . . . . . . . . . . . . 328
9.7 List comprehensions . . . . . . . . . . . . . . . . . . . . . . 332
9.8 Spines and non-strict evaluation . . . . . . . . . . . . . . 337
9.9 Transforming lists of values . . . . . . . . . . . . . . . . . 346
9.10 Filtering lists of values . . . . . . . . . . . . . . . . . . . . . 353
9.11 Zipping lists . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
9.12 Chapter Exercises . . . . . . . . . . . . . . . . . . . . . . . . 357
9.13 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
9.14 Follow-up resources . . . . . . . . . . . . . . . . . . . . . . 367
10 Folding lists 368
10.1 Folds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
10.2 Bringing you into the fold . . . . . . . . . . . . . . . . . . 369
10.3 Recursive patterns . . . . . . . . . . . . . . . . . . . . . . . 370
10.4 Fold right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
10.5 Fold le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
10.6 How to write fold functions . . . . . . . . . . . . . . . . . 387
10.7 Folding and evaluation . . . . . . . . . . . . . . . . . . . . 392
10.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
10.9 Scans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
剩余1232页未读,继续阅读
资源评论
xiaode_c
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Spring、MyBatis、MySQL的云南旅游资源分享网站后端接口设计源码
- Matlab根据Flac6.0模型文件生成对应个数的弹性模量与泊松比的随机数据 本案例假设2参数均服从威布尔分布,根据给定均值标准差生成随机数(若符合其他分布,可自行修改),然后Flac6.0读取生成
- 永磁同步电机的全速度范围无传感器矢量控制:脉振高频注入(方波注入)切到改进SMO 低速段采用HFI脉振高频注入启动,中高速段采用基于转子磁链模型的SMO,切方法为加权系数 改进的SMO不使用低通滤
- 基于plc的金属压铸机系统设计报告 报告+仿真
- GASA-BP基于遗传模拟 火优化BP神经网络的回归预测 案例包括GA与SA优化BP代码,并给出对比计算结果 matlab代码,备注详细,方便初学者学习
- COMSOL 二维激光烧蚀
- PNN概率神经网络分类预测 先根据训练数据选择合适的平滑因子,再对测试集进行预测 matlab代码,备注详细,根据自己需要修改案例数据即可
- svm支持向量机分类预测 案例提供数据先进行随机打乱再划分训练测试集,结果更有说服力(若不需要可自行删除修改),数据包含归一化处理,网格搜索寻优确定最优参数 matlab代码,备注详细,根据自己需要修
- 自动驾驶控制器,车道偏离预警系统,基于Prescan设计场景和交通流,在Simulink中建立了相应的控制模型 进行LDW功能验证 整个模型自己建立,再次强调不是Prescan自带的那种很乱很模糊
- 无人驾驶基于自适应mpc的轨迹跟踪控制仿真跟踪轨迹,simulink版本2018及以上,carsim版本2019,图二为跟踪效果
- LLC闭环仿真PSIM调频ZVS 半桥LLC闭环仿真模型,基于PSIM建模仿真 可以进行LLC暂态、稳态仿真,仿真zvs特性、调频闭环控制等 仿真模型使用PSIM9.1搭建
- Matlab计算任意三点的夹角 给出特定一组坐标(可以直角坐标系或极坐标系) 计算出所有夹角值 matlab代码,备注清楚,更改为自己的数据即可
- FCM聚类,代码对数据先进行归一化然后聚类 可自定义聚类个数,求得每类的具体数据 matlab代码,备注清楚,更改为自己的数据和要求即可
- MATLAB代码:基于双层优化的电动汽车优化调度研究 关键词:双层优化 选址定容 输配协同 时空优化 参考文档:《考虑大规模电动汽车接入电网的双层优化调度策略-胡文平》中文版 A bi-l
- Buck仿真闭环Psim双闭环 Buck闭环仿真模型,基于PSIM建模仿真 可以进行暂态、稳态仿真,电压电流双闭环控制,模拟控制电路 仿真模型使用PSIM9.1搭建
- windows-programming-DCAP509.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功