概述
Scheme语言在实际中的用途也是比较多的,在我们的图形编辑软件GMIP中广泛应用,在GMIP中以Scheme作为脚本语言应用非常广泛。
1、一些Scheme的基本用法
(1)cons:把元素加到链表里;(cons 1 '(2 3 4 5)),有两个参数.
(2)quote:引用用来阻止记号被求值,它是用来用符号或者表原封不动的传递给程序,而不是求值之后传递,由于用的次数很多,被记为 ’ ,例如,(+ 2 3)会被求值为5,然而(quote (+ 2 3))则向程序返回(+ 2 3)本身。’(+ 2 3)代表列表(+ 2 3)本身
(3)append:把两个或多个链表组成一个链表;(append '( 1 2) '(3 4)) return (1 2 3 4)
(4)list:把两个或多个链表连成一个链表;(list '(1 2) '(3 4)) return ((1 2) (3 4))
(5)lambda:用于定义过程。lambda需要至少一个的参数,第一个参数是由定义的过程所需的参数组成的表。lambda的语句体都是隐式的begin代码结构
(6) let:用于定义局部变量,格式 (let binds body),变量的作用域scope为body体,[binds] → ((p1 v1) (p2 v2) ...)
(7)map:映射是将同样的行为应用于表所有元素的过程。R5RS定义了两个映射过程:其一为返回转化后的表的map过程,另一为注重副作用的for-each过程:(mapprocedure list1 list2 ...)
(8)apply:是将一个过程应用于一个表。此函数具有任意多个参数,但首参数和末参数分别应该是一个过程和一个表
(9)cond:类似于C语言的的case操作,(cond ((测试) 操作) … (else 操作))
(10)and:and后可以有多个参数,只有它后面的参数的表达式的值都为#t时,它的返回值才为#t,如果表达式的值都不是boolean型的话,返回最后一个表达式的值> (and #t 5) 5
2、Scheme中数据类型
Scheme提供了大量通用的数据类型,整数,浮点数,复数,有理数,字符串,布尔变量,散列,数组,矢量,点对,和列表。本次主要研究后几种数据结构。
(1)首先是点对,比如(1,2)是一个点对,一个点对包含两个指针,每个指针指向一个值。我们用函数cons构造点对。比如说(cons 1 2)就构造出点对(1 . 2)。因为点对总是又函数cons构造,点对又叫做cons cell。点对左边的值可以用函数car取出来,右边的值可以由函数cdr取出来。
如果一个点对右边不是一个值,而是一个指针,指向另外一个列表,我们就得到了列表。比如下面的图表示列表(1 2 3 4),实际上由点对构成:(1 . (2 . (3 . 4. ‘())。可以看出,列表本质是单向链表,图示如下:
最后
以上就是凶狠皮带为你收集整理的Scheme 语言 编程思想上的全部内容,希望文章能够帮你解决Scheme 语言 编程思想上所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复