博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Scheme归纳】7 常用关键字
阅读量:6827 次
发布时间:2019-06-26

本文共 1040 字,大约阅读时间需要 3 分钟。

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



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


为使本文得到斧正和提问,转载请注明出处:


你可能感兴趣的文章
Web开发必知的八种隔离级别
查看>>
酷炫的显示主页面
查看>>
org.apache.catalina.startup.Catalina start之过程分析
查看>>
CAA如何进行干涉检查?
查看>>
silverlight vs flash
查看>>
我的友情链接
查看>>
对大文本域进行BASE64编码解码
查看>>
我的友情链接
查看>>
关于cisco交换机的config.text和startup-config
查看>>
可执行JAR读写内外文件
查看>>
libsvm for python学习(2)
查看>>
Windows+Apache搭建PHP开发环境
查看>>
lamp环境测试php问题
查看>>
Handbook of Constraints Programming——Chapter4 Backtracking Search Algorithms-Preliminaries
查看>>
[转载] 信息系统项目管理师视频教程——14 项目进度管理
查看>>
linux 解压文件
查看>>
区块链学习指南
查看>>
LINUX-软件安装(四)
查看>>
JavaScript学习总结(5)——Javascript面向(基于)对象编程
查看>>
Ansible入门
查看>>