本文共 1040 字,大约阅读时间需要 3 分钟。
在common lisp中有format,在scheme中则有display,轻松应对各种输出。
(display(+ 1 2 3 4))10;Unspecifiedreturn value(display‘(1 2 3 4))(12 3 4);Unspecifiedreturn value
换行符一枚
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外,还列出了每次调用的参数。
在新版本的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函数所需的时间了。
感谢访问,希望对您有所帮助。 欢迎关注或收藏、评论或点赞。
为使本文得到斧正和提问,转载请注明出处: