【Scheme归纳】7 常用关键字

display

在common lisp中有format,在scheme中则有display,轻松应对各种输出。

(display(+ 1 2 3 4))
10
;Unspecifiedreturn value
(display‘(1 2 3 4))
(12 3 4)
;Unspecifiedreturn value

newline

换行符一枚

trace

trace可以用来跟踪函数的调用。我们用一个简单的例子来展示:

(define(cube x)
       (* x x x))
(define(sum-cube-x x)
       (if (= x 1)
         x
        (+ (cube x) (sum-cube-x (- x 1)))))

然后就可以开始跟踪了:

(trace-entrycube)
;Unspecifiedreturn value
(sum-cube-x3)
[Entering#[compound-procedure 12 cube]
       Args: 2]
[Entering#[compound-procedure 12 cube]
       Args: 3]
;Value:36

返回值之前的就是跟踪的结果了,跟踪结果除了告诉我们(sum-cube-x 3)共调用了2次cube外,还列出了每次调用的参数。

runtime

在新版本的MIT-Scheme中,runtime按秒来计算,如要用微秒可采用real-time-clock函数。不过这两者的用法是一样的。

(runtime)
;Value:79.163
(real-time-clock)
;Value:6922453

如果要测试一个表达式等的运行时间,在Scheme也同样是完全可以做到的:在表达式之前和之后分别添加一个real-time-clock即可,两个real-time-clock之间的数值差就是运行该表达式等的所需时间。具体代码如下:

(define(get-time)
       (let ((start-time (real-time-clock)))
         (get-time-2)
         (- (real-time-clock) start-time)))

这个get-time函数返回的就是运行get-time-2函数所需的时间了。




感谢访问,希望对您有所帮助。 欢迎关注或收藏、评论或点赞。



为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


时间: 2024-07-31 06:35:43

【Scheme归纳】7 常用关键字的相关文章

网页技术CSS元素的class与ID命名常用关键字

css|关键字|网页 由于项目中编写文档结构.编写CSS的人员较多,并与程序员协同工作,就需要统一class与id的名称,前天花了一点时间,按照大多人的习惯,制定了下面的常用关键字: 容    器:container/box 头    部:header 主 导 航:mainNav 子 导 航:subNav 顶 导 航:topNav 网站标志:logo 大 广 告:banner 页面中部:mainBody 底    部:footer 菜    单:menu 菜单内容:menuContent 子 菜

标准建站来看:CSS元素的class与ID命名常用关键字

css|标准|关键字 由于项目中编写文档结构.编写CSS的人员较多,并与程序员协同工作,就需要统一class与id的名称,前天花了一点时间,按照大多人的习惯,制定了下面的常用关键字: 容 器:container/box 头 部:header 主 导 航:mainNav 子 导 航:subNav 顶 导 航:topNav 网站标志:logo 大 广 告:banner 页面中部:mainBody 底 部:footer 菜 单:menu 菜单内容:menuContent 子 菜 单:subMenu 子

CSS元素的class与ID命名常用关键字

由于项目中编写文档结构.编写CSS的人员较多,并与程序员协同工作,就需要统一class与id的名称,常用关键字: 容 器:container/box 头 部:header 主 导 航:mainNav 子 导 航:subNav 顶 导 航:topNav 网站标志:logo 大 广 告:banner 页面中部:mainBody 底 部:footer 菜 单:menu 菜单内容:menuContent 子 菜 单:subMenu 子菜单内容:subMenuContent 搜 索:search 搜索关键

PHP面向对象开发之类的常用关键字

类中的常用关键字 1.fianl:锁 2.self:有点类似与this关键字 3.static:静态属性 4.const:常量关键字 1.关键字:fianl 用来定义类和方法的一个重要关键字,当定义类的时候该类不能被继承,用来定义方法的时候该方法不能被重载. 1. final不成修饰成员属性(类中常不是用这个关键字) 2. final只能修饰类和方法 作用: 使用final修饰的类 不 能被子类继承 使用final修饰的方法不能被子类去覆盖 用来限制类不被继承,方法不被覆盖就使用fianl 类使

【Scheme归纳】3 比较do, let, loop

对象的比较 eq? 这个函数用来比较2个对象的地址,如果相同的话就返回#t.在Scheme中真用#t表示,假则用#f. 例如,(eq? str str)返回#t,因为str本身的地址的是一样的,但是"scheme"和"scheme"则被存储在不同的地址中,因此函数返回#f.注意,不要用eq?来比较数字,因为在R5RS和MIT-Scheme中均没有被指定返回值,建议使用eqv?或者=代替.以下是一些示例: (define str "scheme")

Delphi常用关键字用法详解_Delphi

本文详细介绍了Delphi中常用的各个关键字名称及用法,供大家在编程过程中借鉴参考之用.详情如下: absolute: //它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同. var Str: string[32]; StrLen: Byte absoluteStr; //这个声明指定了变量StrLen起始地址与Str相同. //由于字符串的第0个位置保存了字符串的长度, 所以StrLen的值即字符串长度. begin Str := 'abc'; Edit1.Text := I

【Scheme归纳】5 数据结构

Scheme的数据结构 在前面的博文中我们使用了list等等,像其他的编程语言一样,Scheme也有字符(Character),字符串(String),符号(Symbol),向量(Vector)等数据结构.下面我们来一一介绍. 字符 在某个字符前添加#\来表面该物是一个字符.例如,#\a表示字符a. \Space,#\Tab,#\Linefeed,#\Return分别代表空格(Space),制表符(Tab),换行(linefeed)和返回(Return). (char-whitespace?#\

【Scheme归纳】6 赋值

赋值 因为Scheme是函数式语言,通常来说,你可以编写不使用赋值的语句.然后如果使用赋值的话,有些算法就可以轻易实现了.尤其是内部状态和继续(continuations)需要赋值. R5RS中规定的用于赋值的特殊形式是set!,set-car!,set-cdr!,string-set!,vector-set!等. 因为赋值改变了参数的值,因此它具有破坏性(destructive). 在Scheme中,具有破坏性的方法都以!结尾,以警示程序员. set!可以为一个参数赋值.与Common Lis

【Scheme归纳】1 使用Edwin

Edwin介绍 Edwin是MIT Scheme系统的一个窗口式的编辑使用前端.启动Edwin实际是先启动Scheme系统,再启动也给Edwin前端.Edwin是一个使用Scheme写的交互式编辑器,其特点是支持Scheme表达式的编辑和求职. 两种模式 Edwin模式: 编辑Scheme文件的模式,如果装入一个.scm文件,相应的Edwin的这个编辑区处于Edwin模式.这种模式下可以编写Scheme程序,也可以对表达式求值.正常求出的值显示在最下面交互行,但不会显示出错信息,也不能进入调试系