Scheme的数据结构
在前面的博文中我们使用了list等等,像其他的编程语言一样,Scheme也有字符(Character),字符串(String),符号(Symbol),向量(Vector)等数据结构。下面我们来一一介绍。
字符
在某个字符前添加#\来表面该物是一个字符。例如,#\a表示字符a。
\Space,#\Tab,#\Linefeed,#\Return分别代表空格(Space),制表符(Tab),换行(linefeed)和返回(Return)。
(char-whitespace?#\ )
;Value:#t
(char-whitespace?#\)
;Value:#\)
(char-whitespace?#\a)
;Value:#f
(char? obj) 如果obj是一个字符则返回#t。
(char=? c1 c3) 如果c1和c2是同一个字符的话则返回#t。
(char->integer c) 将c转化为对应的整数(字符代码,character code)。示例:(char->integer #\a) => 97
(integer->char n) 该函数将一个整数转化为对应的字符。
(char<? c1 c2)
(char<= c1 c2)
(char> c1 c2)
(char>= c1 c2)
这些函数用于比较字符。
实际上,这些函数比较的是字符代码的大小。
例如,(char<?c1 c2)
等同于(< (char->integer c1) (char->integerc2))
(char-ci=? c1 c2)
(char-ci<? c1 c2)
(char-ci<=? c1 c2)
(char-ci>? c1 c2)