`

(译)Scheme简明教程4-数据类型转换及其它类型

阅读更多

2.2.1     数据类型转换

Scheme提供了许多可以进行数据类型转换的过程。我们已经知道可以通过char-downcase char-upcase过程来进字符大小写的转换。字符还可以通过使用char->integer来转换成整型,同样的整型也可以通过integer->char被转换成字符。(字符转换成整型得到的结果通常是这个字符的ascii码值。)

(char->integer #\d) =>  100

(integer->char 50)  =>  #\2

字符串可以被转换成等价的字符列表。

(string->list "hello") =>  (#\h #\e #\l #\l #\o)

其它的转换过程也都是一样的风格list->string vector->list list->vector

数字可以转换成字符串:(number->string 16) =>  "16"

字符串也可以转换成数字。如果字符串不能转换成数字,则会返回#f

(string->number "16")

=>  16

 

(string->number "Am I a not number?")

=>  #f

string->number第二个参数是可选参数,指示以几进制来转换。

(string->number "16" 8) =>  14

八进制的数字 16 等于 14

Symbols也可以转换为字符串,反之亦然:

(symbol->string 'symbol)

=>  "symbol"

 

(string->symbol "string")

=>  string


 

2.1          其它数据类型

Scheme还包含了一些其它数据类型。一个是procedure(过程)。我们已经见过了许多过程了,例如,display + cons等。实际上,它们是一些承载了过程值的变量,过程本身内部的数值和字符并不可见:

cons

=>  <procedure>

迄今为止我们所见过的这些过程都属于原始过程(系统过程),由一些全局变量来承载它们。用户还可以添加自定义的过程。

还有另外种数据类型是port端口。一个端口是为输入输出提供执行的通道。端口通常会和文件和控制台操作相关联。

在我们的”HelloWorld程序中,我们使用display过程向控制台输出了一个字符串。display可以接受两个参数,第一个参数值是将输出的值,另一个值则表示了即将承载显示结果的输出port(端口)

在我们的程序中,display的第二参数是隐式参数。这时候display会采用标准输出端口作为它的默认输出端口。我们可以通过调用current-output-port过程来取得当前的标准输出端口。我们可以更清楚的写出

(display "Hello, World!" (current-output-port))

2.2          S-expressions

所有这些已经被讨论过的数据类型可以被统一成一种通用的叫作s-expression(符号表达式或s-表达式)的数据类型(s代表符号)。像 42#\c(1 . 2) #(a b c) "Hello" (quote xyz) (string->number "16") (begin (display "Hello, World!") (newline))都是s-表达式。

分享到:
评论

相关推荐

    Fluent_Scheme简明中文手册-带书签.pdf

    2. Scheme基础,这将包括Scheme的语法、数据类型、控制结构、函数定义、以及如何使用Scheme语言进行计算。 3. 用户自定义函数(UDFs)的介绍,包括UDF的结构、如何在Fluent中加载和卸载UDFs,以及如何在UDF中使用...

    scheme简明教程

    这是一本在国外比较有名的Scheme编程语言的入门教材。本教材适合任何对Scheme编程语言感兴趣的人阅读,尤其是有其他编程语言(特别是动态语言)编程经验,希望快速了解Scheme的不同点并且快速上手写点东西的人。

    fluent——scheme简明中文手册

    由于提供的文件内容片段实际上并没有提供关于标题“fluent——scheme简明中文手册”的具体内容,而是呈现了一些无序的数字和章节标题,我们无法直接基于这些片段生成详尽的知识点。但我们可以根据手册的标题,以及...

    2004 Locality-sensitive hashing scheme based on p-stable distributions.pdf

    局部敏感哈希(Locality-sensitive hashing,简称LSH)是一种在数据挖掘领域中广泛应用于高维空间近邻搜索问题的技术。2004年的这篇论文介绍了一种基于p-稳定分布的局部敏感哈希方案,该方案提出了一种新型的哈希...

    Android-scheme-libscheme-lib是一个scheme使用的库

    4. **交互机制**: 设计Java和Scheme之间的数据交换机制,如通过参数传递和返回值。 **应用场景** Scheme-Lib在Android上的应用可能包括: - **游戏逻辑**: 用于编写复杂的游戏规则和AI算法。 - **动态配置**: 在...

    mit-scheme-fererence

    - **Disjointness of Types**(类型分离性):不同类型的数据之间是完全分离的,这意味着不同类型的值不能相互转换。 - **Storage Model**(存储模型):描述了Scheme中数据的存储方式,如堆栈和堆的使用。 - **...

    A Preprocessing Scheme for High-Cardinality Categorical Attributes

    在机器学习和数据分析领域,高维类别(categorical)属性,即那些具有大量不同值的分类变量,常常会给模型训练带来挑战。这类问题通常被称为“高基数”(high cardinality)问题,因为“基数”指的是类别变量的不同...

    CorSegRec: A Topology-Preserving Scheme for Extracting Fully-Con

    CorSegRec: A Topology-Preserving Scheme for Extracting Fully-Connected Coronary Arteries from CT Angiography CorSegRec:拓扑保持 全连通提取方案 冠状动脉CT血管造影

    Mit.Press-Teach.Yourself.Scheme.pdf (英文)

    《Teach Yourself Scheme in Fixnum Days》是一本详尽的教程,旨在帮助读者在有限的时间内掌握Scheme语言的基础及进阶知识。此书由Dorai Sitaram撰写,并且在网络上部分中文翻译已经存在(参考链接:...

    fluent_scheme语言手册

    - Scheme语言的语法简洁,对数据的处理能力强,支持高级数据类型如列表和符号。 - 它是一种解释型语言,通常具有垃圾回收机制,易于学习和使用。 - Scheme语言广泛应用于教学和研究,因其简洁的语法和强大的表达...

    scheme语言中文教程

    - 表(list)操作:Scheme中的表是一种基本的数据结构,教程会介绍如何创建、访问和操作表,如list、cons、car、cdr等。 - 闭包和过程:详细解释过程的定义和闭包的概念,以及如何创建和使用过程。 - 字符串操作:...

    Fluent Scheme中文手册修订.docx

    4. Fluent-Scheme-UDFs 接口 Fluent Scheme 提供了一个 UDFs(User-Defined Functions)接口,允许用户定义自己的函数。该接口包括: * 数据交换:通过使用 `udf` 函数,可以在 Fluent 和 Scheme 之间交换数据。 *...

    HA-ColorSchemeDesigner09-yfy

    《HA-ColorSchemeDesigner09-yfy:探索配色艺术与专业工具的奥秘》 在数字设计领域,色彩搭配是至关重要的一环,它能够直接影响到用户对产品的第一印象和使用体验。"HA-ColorSchemeDesigner09-yfy" 是一款专为设计...

    mit-scheme的基本使用教程

    《MIT-Scheme的基本使用教程》 MIT-Scheme是一款基于R5RS标准的Scheme实现,它以其简洁、高效和可扩展性著称。本教程将详细讲解如何使用MIT-Scheme进行编程,包括在命令行环境和Emacs编辑器下的操作。 一、MIT-...

    A novel color image watermarking scheme in nonsampled contourlet-domain

    - **彩色图像归一化**:通过对图像颜色空间进行转换,使得不同设备之间能够一致地显示图像。 - **HSV遮罩**:通过在HSV颜色空间中调整水印嵌入强度,实现对水印的优化隐藏。 #### 技术细节 - **构建几何不变空间**...

    Scheme语言基础教程

    ### Scheme语言基础教程 #### Scheme语言概述 Scheme作为MIT基于LISP语言开发的一种变体,具有独特的地位。它不仅保留了LISP的核心理念——一种功能性的编程方式,而且通过简化和标准化,使得学习和使用更加便捷...

    mit-scheme-ref

    - 解释了如何在Scheme中表示数字、字符串和其他基本数据类型。 - **1.4.2 Variable References(变量引用)** - 说明了如何在代码中引用变量。 - **1.4.3 Special Form Syntax(特殊形式语法)** - 讨论了Scheme...

    Lisp语言教程(Scheme)

    ### Lisp语言教程(Scheme)知识点概述 #### 一、Scheme语言简介 - **起源与发展**:Scheme语言作为Lisp家族的一员,诞生于1975年的麻省理工学院(MIT)。尽管它没有像C++、Java这样的语言在商业领域得到广泛应用...

    scheme_自学教程.pdf

    虽然教程中未明确提及,参与Scheme相关的在线论坛、社区或项目可以加速学习进程,获取实际经验并与其他开发者交流心得。 综上所述,《Scheme自学教程》旨在为有一定编程基础的初学者提供一个快速入门的平台,通过...

Global site tag (gtag.js) - Google Analytics