今天是中秋节第二天。之前学院通知我可以保研,我想真是RP大爆发。我也不知道自己的成绩原来那么高。现在在准备其他高校的材料。。。
今天写的是第六章《组合数据类型1:结构体》.这一章我学习好久,当然有些原因是当时我读文档的时候看的是英文版的,理解也花点时间。除此之外,更多的是因为从这一章开始就接触到编程的一些规范。我把这一章分成两次来论述:结构体和编程规范。这样显得清晰些。
下面来讲述结构体。
为了方便理解,我将C语言的结构体语法与Scheme语言结构体语法相比较,这样就清晰明了了。
创设一个情景:有那么一个结构,学生Stu,学生属性姓名name,性别sex,班级class。
1.定义
C语言定义如下
lisp语言定义如下struct Stu{ char name[20]; int sex; char class[10]; }; //或者 define struct Stu{ char name[20]; int sex; char class[10]; } Stu;
(define-struct Stu (name sex class))
2.声明结构体(填充)
C语言定义如下
Stu s;
s.name = "ldw";
s.sex = 1;
s.class = "091020117"
lisp语言定义如下
(define s (make-Stu "ldw" 'boy "091020117"))
3.解析(extract)
C语言:
s.name
s.sex
s.class
lis语言:
(Stu-name s)
(Stu-sex s)
(Stu-class s)
差不多了,当时我就是这样想的,C语言和lisp语言对比记忆,可惜没去做。今日又有一番新的感悟。。。