第7课:重要概念——list功能详解
如果你觉得本教程对你有帮助,欢迎大家转载到各大论坛博客。转载还请注明出处哦{:soso_e113:}。老罗感谢大家一直以来的支持!{:soso_e100:}Skill中,list是一个非常重要的概念。基本上每一个skill都会用到list,所以大家一定要list学透。
1.什么是list?
list光从字面上可理解为“列表”、“链表”。Skill中,list是各种数据元素的集合,。list与数组类似,但又不全一样;数组定义时一般要指定长度和数据类型,并且各个数据元素的类型必须一致,而list不需要指定长度,且list的长度可随时变化,也可以存放任意数据类型。下面举个例子:
Skill > a = '(1 2 3 4 5 6 7 8 9 10)
(1 2 3 4 5
6 7 8 9 10
)
Skill > a
(1 2 3 4 5
6 7 8 9 10
)
Skill > type(a)
list
将list赋值给变量a,该list中共10个元素;变量a的类型为list。(可以通过type函数来查看变量类型)
2.list的创建**** Hidden Message *****
如果你觉得本教程对你有帮助,欢迎大家转载到各大论坛博客。转载还请注明出处哦{:soso_e113:}。老罗感谢大家一直以来的支持!{:soso_e100:}
1. list()与list(nil)有什么区别?前面是系统自动返回值nil,后面是把nil当字符返回(nil)4qian_" X3 T3 ~: sN6 P
2. cons(a list1)与cons('alist1)有什么区别,另外,cons函数的第一个传递参数有什么要求?前面a是个变量,返回他定义的字符。后面a就是一个list的返回值。cons函数的第一个传递参数要是是数据字符或已定义的变量。
3.现在又一个list为(10 2030 40),请在该list后添加一个数字50,组成新的list(1020 30 40 50)
4.
交作业~ stevenzhu 发表于 2015-1-23 17:22
经过一番辛苦和努力,终于交了作业,感谢罗老师和RIO.
1、list()与list(nil)的区别为:! N: j3 X, {....
补充源码:给同学们共同学习参考~~不足之处请指点,谢谢~~ 本帖最后由 leench124 于 2015-1-28 11:50 编辑
喜交作业,摩擦摩擦~~请罗老师检查。不对之处,还望罗老师不吝赐教。
1、list()与list(nil)的区别为:
list()意为创建一个空链表,而list(nil)意为创建一个元素为nil的链表,换句话说就是list()没有element(元素),而list(nil)的element(元素)为nil;
2.1、cons(a list1)与cons('a list1)的区别为前者将一个浮点数(a = 0)插入到list1首地址的前面,后者将一个symbol(a)插入到list1首地址的前面;
2.2、cons的第一个传递函数可以为任何数据类型,但是须为已知数;
3、源码如下:l4即为所求
Skill >l1 = list(10 20 30 40)
(10 20 30 40)
Skill > l2 = reverse(l1)
(40 30 20 10)
Skill > l3 = cons(50 l2)
(50 40 30 20 10)
Skill > l4 = reverse(l3)
(10 20 30 40 50)
上述方法绕远了,下面方法更简单:
Skill > l1 = list(10 20 30 40)
(10 20 30 40)
Skill > l2 = append1(l1 50)
(10 20 30 40 50)
l2即为所求
4、显示如下:
誓死学会skill. leench124 发表于 2015-1-21 16:47
誓死学会skill.
你速度真快。 vivienluo 发表于 2015-1-21 16:48
你速度真快。
收到老师的mail,第一时间就来学习了。 赶紧来看看,谢谢罗老师,辛苦了! 学习学习!谢谢!
学习者。。。。。。。。 我又来了!加油哦!!!:lol 支持楼主,谢谢楼主了