码迷,mamicode.com
首页 > 其他好文 > 详细

【Scheme归纳】7 常用关键字

时间:2015-02-07 11:26:56      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:

1、display

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

(display (+ 1 2 3 4))

10

;Unspecified return value

(display ‘(1 2 3 4))

(1 2 3 4)

;Unspecified return value

 

2、newline

换行符一枚

 

1、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-entry cube)

;Unspecified return value

(sum-cube-x 3)

[Entering #[compound-procedure 12 cube]

       Args: 2]

[Entering #[compound-procedure 12 cube]

       Args: 3]

;Value: 36

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

 

2、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函数所需的时间了。

【Scheme归纳】7 常用关键字

标签:

原文地址:http://www.cnblogs.com/NoMasp/p/4278435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!