cs61课程总结-lecture2,3
来源:互联网 发布:淘宝怎么搜便宜的东西 编辑:程序博客网 时间:2024/04/28 16:32
值(values):是我们要操作的东西
函数(functions)是我们操作东西的计算过程
表达式:表示带有返回值的计算过程
今天探讨函数如何操纵数据对象和表达式如何表达这些操作
函数-->代换模型(直接上图)
tips:字面值(literals)与实值(values)区别
pure functions 与 impure functions 区别(对应于树形模型)impure function 会多出虚孩子节点对应于副作用(side effect)
代换模型的局限性导致引入了环境模型
def f(x):<span style="white-space:pre"></span>def g(x):<span style="white-space:pre"></span>return x + 10<span style="white-space:pre"></span>return g(5)f(3)当调用f(3)时,不能将g里的x进行代换。
如何计算表达式的值?
1).对于literal其值就是对应的value
2)而对于function,evaluate的结果是用对应的函数体替换----而函数体却与定义函数是所在的环境相关---这就引入了环境模型
环境模型:
环境:将名字(names)到其值的映射------区别三个概念 name,value(object),state
环境 f: name--->value
状态 f:value(object)--->state
任何表达式都在对应的环境下进行求值,其值就是对应names所对应的value
如下图为简单的环境模型
对一个name在一个环境下进行求值,就是在该环境下查找与名字对应的value
通常,我们可以发现环境事实上形成了一个链式祯的结构。
当在当前环境下查找不到时,在对应的父环境下继续查找
当调用一个函数时首先先形成该函数的局部环境(由其参数构成)
总结:
环境是name到value的映射
其由链式帧组成
一个环境要么是全局帧或者是一个当前帧链接到父环境:===这是一个典型的递归定义
我们说name与一个帧里的value绑定
在一个环境中名字的值(the value of name)是与该环境中第一个帧中的名字的值绑定(如果存在的话)
如果不存在则与父环境中同名的值绑定
环境:绑定与求值(binding 俺的 evaluation
每个表达式和语句都在一个环境下执行,这决定了name的meaning(value)
表达式里的子表达式与表达式相同的环境下求值
赋值(assigning)操作将其被执行时对应环境下第一个存在该名字的帧里的名字绑定一个值
定义(def)语句将其被执行时对应环境下第一个存在该名字的帧里的名字绑定一个值
调用(calling)操作,创建了一个当前帧(由参数组成)
• λ a, b: ≪ a × b≫ (add(2, mul(0x4, 0x6)), add(0x3, 005))
• λ a, b: ≪ a × b≫ ( λ a, b: ≪ a + b≫ ( 2 , λ a, b: ≪ a × b≫ ( 4 , 6 )), add(0x3, 005))
• λ a, b: ≪ a × b≫ ( λ a, b: ≪ a + b≫ ( 2 , ≪ 4 × 6 ≫,add(0x3, 005))
• λ a, b: ≪ a × b≫ ( λ a, b: ≪ a + b≫ ( 2 , 24 ), add(0x3, 005))
• λ a, b: ≪ a × b≫ (≪ 2 + 24 ≫, add(0x3, 005))
• λ a, b: ≪ a × b≫ ( 26 , add(0x3, 005))
• λ a, b: ≪ a × b≫ ( 26 , λ a, b: ≪ a + b≫ ( 3 , 5 ))
• . . . λ a, b: ≪ a × b≫ ( 26 , 8 )
• . . . 208 .
- cs61课程总结-lecture2,3
- cs61课程总结-lecture1
- Lecture2-3Guarantee of PLA
- 台湾大学深度学习课程 学习笔记 lecture2-2 Word Representation
- 台湾大学深度学习课程 学习笔记 lecture2-1 Backpropagation
- CS231n Spring Lecture2 Image Classification pipeline的一点总结
- 课程总结
- 课程总结
- 课程总结
- Lecture2 Operations
- Linux课程总结
- 种子班课程总结
- 回顾课程总结
- 今日课程总结
- 数据库课程复习总结
- ARM课程总结
- 汇编课程总结
- GY课程总结
- MFC在VS2008中为ActiveX控件添加属性
- 【HDU】2874 Connections between cities 离线LCA
- 获取一个主机的IP,MAC信息
- Flash不同wmode属性分析
- ip phone的原理是什么
- cs61课程总结-lecture2,3
- hdu 4717 The Moving Points(三分)
- 如何区分“动态库的导入库”与“静态库”
- C语言获取系统时间
- 2014/7/1 APP内存、CPU测试总结
- 解决activity为singletask模式下,收不到从其它activity传过来的信息bundle的bug
- JUnit 4 Vs TestNG 对比
- VC资源编辑器里对话框的大小和实际的像素尺寸显示问题
- 人往高处走,水往低处流