标签:
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函数所需的时间了。
标签:
原文地址:http://www.cnblogs.com/NoMasp/p/4278435.html