来源微信公众号:icdlab,关注公众号获取更多信息
查找List元素函数简介
Skill中List查找函数众多,下面对常见的查找函数做简单总结;
List查找函数
car
- 函数用法:
car( l_list ) ;=> g_result - 函数输出:
返回值为输入参数l_list的第一个元素 - 使用实例:
car('("1" "2" "3")) => "1"
car(list()) => nil
cdr
- 函数功能:
获取列表中除第一个元素外的其他元素组成的列表,注意返回值是list数据类型; - 函数用法:
cdr( l_list ) ;=> l_result - 函数输出:
返回值为list数据类型,返回除第一个元素以外其他元素组成的列表; - 使用实例:
cdr('("1" "2" "3")) => ("2" "3")
cdr(list()) => nil
ca|d[a|d]r
- 函数功能:
由多个car/cdr函数组合成的新函数,例如cadar(l_list)等同于car(cdr(car(l_list))); - 函数用法:
ca|d[a|d]r( l_list ) ;=> g_result - 使用实例:
cadr('("1" "2" "3")) => "2"
cdar('((1 2) (3 4) (5 6))) => (2)
nth
- 函数功能:
获取列表中指定索引对应的元素值,注意索引从0开始; - 函数用法:
nth(x_index0 l_list ) ;=> g_result/nil - 函数输入:
输入参数x_index0为索引值,整数类型,l_list为list类型; - 函数输出:
返回值为列表中索引x_index0对应的元素; - 使用实例:
nth(1 '("1" "2" "3")) => 2
nth(2 '("1" "2" "3")) => 3
nthelem
- 函数功能:
获取列表中指定索引对应的元素值,注意索引从1开始; - 函数用法:
nthelem(x_index1 l_list ) ;=> g_result/nil - 函数输入:
输入参数x_index1为索引值,整数类型,l_list为list类型; - 函数输出:
返回值为l_list中索引为x_index1对应的元素; - 使用实例:
nthelem(1 '("1" "2" "3")) => 1
nthelem(2 '("1" "2" "3")) => 1
last
- 函数功能:
获取列表的最后一个元素,将改元素以list数据类型输出,注意返回值是list数据类型; - 函数用法:
last( l_arg ) ;=> l_result - 函数输出:
返回值为由输入列表最后一个元素组成的列表 - 使用实例:
last('("1" "2" "3")) => ("3")
last('("1" "2" ("3"))) => (("3"))
member
- 函数功能:
member函数从列表的第一个元素查找到最后,如果找到则返回从找到的元素开始直到最后的元素,找不到返回nil。 - 函数用法:
member(g_obj l_list ) ;=> l_sublist/nil - 函数输入:
输入参数g_obj为需要判断的元素,输入参数l_list为list类型, - 函数输出:
返回值输入列表中第一个元素为指定输入的最大子列表 - 使用实例:
member("2" '("1" "2" "3")) => ("2" "3")
member("3" '("1" "2" ("3"))) => nil - 函数说明:
也可以用来判断指定输入是否为list中的元素;
lindex
- 函数功能:
获取指定元素在列表中的索引值,注意索引值从1开始; - 函数用法:
lindex(l_list g_element [?all t/nil]) ;=> result - 函数输入:
输入参数l_list为list数据类型,g_element为待查找元素,可选参数?all表示是否列出所有的索引值 - 使用实例:
lindx("2" '("1" "2" "3")) => 2
lindx("2" '("1" "2" "3" "2") ?all t) => (2 4)
lindx("2" '("1" "2" "3" "2") ?all nil) => 2
lindx("4" '("1" "2" "3")) => nil - 函数说明:
该函数也可以用来判断指定元素是否为list中的元素;
nthcdr
- 函数用法:
nthcdr( x_count l_list ) ;=> l_result - 函数输入:
函数输入x_count为cdr操作的次数,l_list为操作对象; - 函数输出:
函数输出为对l_list进行x_count次cdr操作后的值; - 使用实例:
nthcdr( 1 '(a b c d)) => (b c d)
nthcdr( 2 '(a b c d)) => (c d)
xCoord
- 函数用法:
xCoord( l_list ) ;=> g_result
yCoord
- 函数功能:
获取输入列表的第二个元素,等同于cadr - 函数用法:
yCoord( l_list ) ;=> g_result
assoc
- 函数功能:
Skill中关联列表为键值对数据类似于字典, 该函数实现由键查找建对应子列表 - 函数用法:
assoc(g_key l_alist) ;=> l_association / nil - 函数输入:
g_key变量为需要的关键值,l_alist 是为一个由多个list组成的list,格式为:((key1 value1) (key2 value2) (key3 value3) ...) - 函数输出:
函数输出为l_alist的子元素,该子元素为列表类型,且列表第一个元素为g_key - 使用实例:
aList = '(( A "one" ) ( B "two" ) ( C "three" ))
assoc( B aList ) => ( B "two" )
assoc( X aList ) => nil
免责声明:
1,本公众号主要是交流学习IC设计知识,部分素材源于网络,若有侵权,作者会第一时间修改删除;
2,本公众号标明原创的文章欢迎转载并注明出处;
3,本公众号文章中出现的脚本仅供学习之用,作者不对其他任何个人或组织在使用脚本过程中产生的任何纠纷负责;
4,本公众号的主体为个人,发表文章纯属个人交流学习行为,文章的观点也属个人观点,与作者曾经任职或者正在任职的公司、其他个人或组织没有任何关系;
5,本公众号文章为个人撰写,错误和疏漏之处在所难免,希望大家指正;
6,本公众号发表的文章依赖各种软件,作者所获取的软件仅供学习交流之用,若有侵权,作者将配合删除;