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

【Scheme归纳】7 常用关键字

时间:2015-02-07 11:51:40      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:scheme   lisp   trace   real-time-clock   runtime   



1display

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

(display(+ 1 2 3 4))

10

;Unspecifiedreturn value

(display‘(1 2 3 4))

(12 3 4)

;Unspecifiedreturn value

 

2newline

换行符一枚

 

1trace

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)共调用了2cube外,还列出了每次调用的参数。

 

2runtime

在新版本的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 常用关键字

标签:scheme   lisp   trace   real-time-clock   runtime   

原文地址:http://blog.csdn.net/nomasp/article/details/43601321

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