type
status
date
slug
summary
tags
category
icon
password
Property
Jul 13, 2023 01:59 PM

Sequences & Data Abstraction

notion image

Sequences

notion image
notion image
List是任何值类型的一个序列

Sequence Abstraction

notion image
[a:b]可以从字符串中街区一个部分,索引从a开始,截取到索引b-1(包括b-1)
可以设置间隔进行跳过
可以进行加法
notion image

Sequence Processing

notion image
可以使用while循环进行遍历
notion image
notion image
for循环和while是等价的
读取超出索引范围值的时候会报错

Range

notion image
一样的是包前不包后,可以每隔多少个跳过

List Comprehensions

notion image
这种表达式并不会影响局部变量

Examples

notion image
 

Data Abstraction

notion image
notion image
notion image

Rational Numbers Arithmetic

notion image
notion image
利用selector取出分子和分母,然后做运算
notion image
notion image

Representing Rational Numbers

notion image
还需要有一些辅助函数
执行结果

Reducing to Lowest Terms

notion image
引入gcd 最大公约数
 

Abstraction Barriers

notion image

Violating Abstraction Barriers

notion image
这样是违反了抽象,因为没有传入rational构造函数。
因为你不敢保证你函数内部的实现就是一个Array,也许是其他的实现方式。只不过在这个地方是这样实现的。
 
一种别的实现方式
 

Dict Data

上面的函数也可以使用dict来实现,而不是数组
 
MongoDB学习笔记CS 61A(Part 7) - Recursion Example
  • Waline
Kitety
Kitety
独特为佳
公告
我曾经七次鄙视自己的灵魂
--卡里·纪伯伦
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
 
最新评论
Loading...