1 / 18
文档名称:

惰性计算-课件PPT(荐).ppt

格式:ppt   大小:154KB   页数:18页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

惰性计算-课件PPT(荐).ppt

上传人:huiwei2002 2018/3/9 文件大小:154 KB

下载得到文件列表

惰性计算-课件PPT(荐).ppt

相关文档

文档介绍

文档介绍:惰性计算
什么是惰性计算
惰性计算在模块设计中的作用
阅读第十七章
1
惰性计算Lazy Evaluation
Haskell的主要计算是函数应用: 将函数f 应用于参数 a1, …, ak时, 将它们代入f定义等式右边相应的变量.
Haskell 使用惰性计算:
函数的参数只有在需要计算时才被计算;
一个参数不必完全计算,只有需要的部分才被计算;
一个参数最多被计算一次。
2

定义函数
g x y = x + 12
则 g (9-3) (g (34 3)) (9-3) +12 6+12 18
另一个例子:
switch :: Int -> a -> a - >a
switch n x y
| n >0 = x
| otherwise = y
(g 34 3) 不需要计算
当 n>0时,不需要计算 y
当 n <= 0时,x不需要计算
3

定义函数
h x = x + x

h (9-3) (9-3)+(9-3) 6+6 12
其中(9-3) 只需要计算一次。
4
计算规则
函数的一般定义
f p1 p2 … pk
|g1 = e1

| otherwise = er
where
v1 a11 …= r1
f q1 q2 … q k = …
计算 f a1 … ak 包含下列三方面:
5
计算–模式匹配
需要计算输入参数至匹配定义中的某个模式,从而决定使用那个等式。例如,
f :: [Int] -> [Int] -> Int
f [] xs = 0
f (x:xs) [] = 0
f (x:xs) (y:ys) = x + y
计算 f [1..3] [1..3] 过程
f [1..3] [1..3] f (1:[2..]) [1..3] f (1:[2..3]) (1:[2..3]) 1+1
6
计算–守卫
假设输入匹配第一个等式,下一步是依次计算条件p1 至 pk, 直至一个条件的值是 True, 然后使用相应的式子作为输出值
f :: Int -> Int -> Int -> Int
f m n p
| m >= n && m >= p = m
| n >= m && n >= p = n
| otherwise = p
f (2+3) (4-1) (3+9)
?? (2+3)>=(4-1) && (2+3) >=(3+9)
… False
?? 3>= 5 && 3 >= 12
False
?? Otherwise
True
7
计算–局部定义
由 where 引入的局部定义只有在需要的时候被计算,而且最多计算一次。例如

f :: Int -> Int -> Int
f m n
| notNil xs = front xs
| otherwise = n
where xs = [m..n]
front (x:y:zs) = x+y
front [x] = x
f 3 5 7
xs 只需计算一次
f 5 3 3
front 不需计算
8
计算次序
当计算存在次序选择时
计算由外至内进行,
例如 f1 e1 (f2 e2 e3), 先计算f1的函数应用。
否则,计算由左至右
例如 f1 e1 e2 + f2 e2 e3, 先计算f1 e1 e2, 后计算 f2 e2 e3.
9
函数是非严格的
Haskell是一个惰性语言。惰性又称为非严格的(non-strict) 。
一个函数称为严格的,如果当它作用于一个非终止的表达式时,计算也不能终止。
Haskell 函数是非严格的。这个特性的优点是:
计算代价大的值可以作为参数传给函数,不需要担心不必要的计算会发生。例如,一个参数可以是无穷的数据结构,我们无需担心内存问题。
更重要的是,惰性计算提供了一种模块程序设计方法,它使得一个问题可以用几个模块解决,并用惰性机制将这些模块粘合起来。
10

最近更新

2023-2024学年广东省九年级物理第一学期期末监.. 23页

幼儿园读书活动总结 31页

幼师工作心得体会大全(32篇) 79页

建房工程合同(15篇) 45页

建设专题会议纪要(31篇) 90页

开展手工制作活动方案(5篇) 10页

影院七夕活动策划方案范文(35篇) 87页

快乐的小学作文9篇 8页

感恩主题的演讲稿(34篇) 56页

2024年采泥器项目投资申请报告代可行性研究报.. 74页

2024年本地网传输系统项目资金需求报告代可行.. 80页

2024年X射线高频高压发生装置项目资金筹措计.. 73页

2024年专业技术人员继续教育公需课题库附答案.. 26页

2024年保安员考试题库参考答案 121页

2024年保安员考试题库完整参考答案 121页

2024年保密员考试题库精品【完整版】 35页

2024年保密知识题库及答案(名校卷) 35页

2024年公务员考试常识题400道a4版 113页

2024年县乡教师选调进城考试《教育学》题库【.. 117页

人教版小学六年级数学毕业试卷(共五套)试题 11页

墓坑回填专项施工方案 12页

美国国家标准质量管理体系 30页

《活板》优质课一等奖教学设计 10页

高等油藏关键工程复习资料中国石油大学北京专.. 16页

心理咨询室工作制度(上墙) 4页

元旦节放假通知 (86) 1页

贯入法检测砂浆自动计算表 1页

德育与心理健康教育有机结合的案例研究精编版.. 8页

汉语口语速成基础篇第十课为了健康 9页