zoukankan      html  css  js  c++  java
  • 【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


    版权声明:本文为 NoMasp柯于旺 原创文章,如需转载请联系本人。

  • 相关阅读:
    哥哥牟:诺拉的死亡是由于寻找食物的粪便!
    Eclipse建筑物SSH(struts-2.2.3 + spring-2.5.6 + hibernate-3.6.8)相框-随着源代码
    Centos6.5下一个Ceph存储集群结构
    linux input如何固定设备event handler
    sizeof运营商
    【小言的设计模式】类之间的关系
    2015第11周五
    2015第11周四~代发公司招聘信息
    2015第11周三
    2015第11周二
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4786106.html
Copyright © 2011-2022 走看看