【Scheme归纳】7 常用关键字

简介:

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



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


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


目录
相关文章
|
存储 C++
【Scheme】编程学习 (三) —— 闭包
本节主要讲述 Scheme 中闭包概念及使用
113 1
|
C语言 C++
【Scheme】编程学习 (四) —— 递归
Scheme 编程通常的使用方法为递归
121 0
|
自然语言处理 C语言 C++
【Scheme】编程学习 (二) —— 基础
Scheme 编程语言学习第二节基础
140 0
|
机器学习/深度学习 自然语言处理 算法
|
存储 编译器 C语言
关键字深度剖析 ⭐️第一章(变量&关键字auto/register)(一)
本文主要讲解点: 初步了解关键字分类 深刻理解变量 深刻理解定义与声明 auto关键字的理解 站在存储结构角度,理解register
关键字深度剖析 ⭐️第一章(变量&关键字auto/register)(一)
关键字深度剖析 ⭐️第一章(变量&关键字auto/register)(二)
本文主要讲解点: 初步了解关键字分类 深刻理解变量 深刻理解定义与声明 auto关键字的理解 站在存储结构角度,理解register
|
Java 数据安全/隐私保护 C++