《How to design programs》第四回

今天是中秋节第二天。之前学院通知我可以保研,我想真是RP大爆发。我也不知道自己的成绩原来那么高。现在在准备其他高校的材料。。。

今天写的是第六章《组合数据类型1:结构体》.这一章我学习好久,当然有些原因是当时我读文档的时候看的是英文版的,理解也花点时间。除此之外,更多的是因为从这一章开始就接触到编程的一些规范。我把这一章分成两次来论述:结构体和编程规范。这样显得清晰些。

下面来讲述结构体。

为了方便理解,我将C语言的结构体语法与Scheme语言结构体语法相比较,这样就清晰明了了。

创设一个情景:有那么一个结构,学生Stu,学生属性姓名name,性别sex,班级class。

1.定义

C语言定义如下

struct Stu{
	char name[20];
	int sex;
	char class[10];
};
//或者
define struct Stu{
	char name[20];
	int sex;
	char class[10];
} Stu;
lisp语言定义如下

(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语言对比记忆,可惜没去做。今日又有一番新的感悟。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值