Common Lisp学习之四:简单数据结构及处理
2013-12-29 22:21
183 查看
1 字面数值
在CL中,给定类型的数字可以有多种不同的字面表示方式,这些不同的形式将被读取器转化成相同的对象表示。例如10,20/2等都表示10。有理数在读取后都被规范化,分数被化简;
整数语法:[+/-]123456
比值语法:[+/-]1/4.2
整数数值可以以特定的进制进行解释
#b 二进制 #0 八进制 #x 十六进制 #36 三十六进制-数字集合从0-9 A-Z中取值
CL定义了四种浮点数类型:短型、单精度、双精度、长型,其精度和表示范围依次递增
复数以#C开始加两个数字的列表,分别表示实部和虚部;如果虚部为0,则LISP会简化为实数。
2 数学函数
2.1 算术运算
多元运算符:+ - * /
单元运算符:+ - * /
如果参数都是相同类型的数(有理数、浮点数或复数),则结果也是同类型的。浮点和复数是有传播性的,如果实参中存在复数,则其他数会被转化为浮点数参加运算。复数也是如此。
2.2 截断
floor 向负无穷截断
celling 向正无穷截断
round 进行舍入操作,如果值在中间,则向偶数接近
truncate向0截断
mod 取模
rem 取余数
1+ 返回+1
1- 返回-1
2.3 数值比较
= 用数学意义的值来比较数字,而忽略类型的区别。EQL会考虑类型。
/= 不等
< > <= >=检查实数的序列
以上这些函数都可以用超过两个参数来调用
min max用来取最值
zerop,minusp,plusp用于判定参数的符号特性
evenp,oddp 用于奇、偶判定
2.4 高等数学
log
exp
expt
sin/cos/tan
asin/acos/atan
3 字符
字符语法:#\后加字符,任何字符都可,例如" (
为了处理特殊字符,支持按命名如space newline tab page linefeed return和backspace
字符有其一套比较函数
4 字符串
字符串是一维的向量,可以用向量的操作来访问。但其提供了自己的处理函数。
字符串写在闭合的双引号里,可以在字符串中包含任何字符集的支持字符,除了双引号和反斜线。当然,通过转义,也可包含这两个符号。
类似的,字符串也有自己的比较函数,这些函数只能比较两个字符串。其带有命名参数,可以指定两个字符串的子串来进行比较。
(string= "abc" "aaa" :start1 0 :end1 1 :start2 0 :end2 1)
此外,length返回字符串的长度。
在CL中,给定类型的数字可以有多种不同的字面表示方式,这些不同的形式将被读取器转化成相同的对象表示。例如10,20/2等都表示10。有理数在读取后都被规范化,分数被化简;
整数语法:[+/-]123456
比值语法:[+/-]1/4.2
整数数值可以以特定的进制进行解释
#b 二进制 #0 八进制 #x 十六进制 #36 三十六进制-数字集合从0-9 A-Z中取值
CL定义了四种浮点数类型:短型、单精度、双精度、长型,其精度和表示范围依次递增
复数以#C开始加两个数字的列表,分别表示实部和虚部;如果虚部为0,则LISP会简化为实数。
2 数学函数
2.1 算术运算
多元运算符:+ - * /
单元运算符:+ - * /
如果参数都是相同类型的数(有理数、浮点数或复数),则结果也是同类型的。浮点和复数是有传播性的,如果实参中存在复数,则其他数会被转化为浮点数参加运算。复数也是如此。
2.2 截断
floor 向负无穷截断
celling 向正无穷截断
round 进行舍入操作,如果值在中间,则向偶数接近
truncate向0截断
mod 取模
rem 取余数
1+ 返回+1
1- 返回-1
2.3 数值比较
= 用数学意义的值来比较数字,而忽略类型的区别。EQL会考虑类型。
/= 不等
< > <= >=检查实数的序列
以上这些函数都可以用超过两个参数来调用
min max用来取最值
zerop,minusp,plusp用于判定参数的符号特性
evenp,oddp 用于奇、偶判定
2.4 高等数学
log
exp
expt
sin/cos/tan
asin/acos/atan
3 字符
字符语法:#\后加字符,任何字符都可,例如" (
为了处理特殊字符,支持按命名如space newline tab page linefeed return和backspace
字符有其一套比较函数
数值相似符 | 大小写敏感比较 | 大小写无关比较 |
= | char= | char-equal |
/= | char/= | char-not-equal |
< | char< | char-lessp |
> | char> | char-greaterp |
<= | char<= | char-not-greaterp |
>= | char>= | char-not-lessp |
字符串是一维的向量,可以用向量的操作来访问。但其提供了自己的处理函数。
字符串写在闭合的双引号里,可以在字符串中包含任何字符集的支持字符,除了双引号和反斜线。当然,通过转义,也可包含这两个符号。
类似的,字符串也有自己的比较函数,这些函数只能比较两个字符串。其带有命名参数,可以指定两个字符串的子串来进行比较。
(string= "abc" "aaa" :start1 0 :end1 1 :start2 0 :end2 1)
数值相似符 | 大小写敏感比较 | 大小写无关比较 |
= | string= | string-equal |
/= | string/= | string-not-equal |
< | string< | string-lessp |
> | string> | string-greaterp |
<= | string<= | string-not-greaterp |
>= | string>= | string-not-lessp |
相关文章推荐
- C++简单学习(Part3_lecture 10)(文件、流、异常处理、动态内存、命名空间)
- 数据结构的简单学习6
- IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)
- JSP标签处理程序学习小结——简单标签
- 【Spring-AOP-学习笔记-3】@Before前向增强处理简单示例
- 计算机视觉与图像处理学习笔记(三)opencv的基本数据类型与简单图像处理函数
- linux下 简单学习epoll处理海量链接
- 队列模拟(简单链表数据结构的处理)
- 从0开始学复制~我的复制学习历程 (一) 简单的快照复制处理
- iOS学习----------图片的简单处理(2)
- OGG学习笔记03-单向复制简单故障处理
- Perl信号处理学习简单小结
- (二)数据结构学习笔记 简单堆栈,STL中堆栈的实现
- Linux 学习日记 6: 简单文本处理
- 【Spring-AOP-学习笔记-6】@AfterThrowing增强处理简单示例
- GitHub基础学习—简单分支处理
- qt学习:Qt中statusBar,MessageBox和Timer的简单处理
- Common Lisp学习之五:集合数据结构
- 数据结构学习三(一个简单的队列实现)
- OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理