【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


目录
相关文章
|
存储 缓存 NoSQL
Redis的主要用途是什么?
【4月更文挑战第2天】Redis是多功能工具,常用于缓存加速、轻量级数据库、消息代理(发布/订阅)、分布式锁、计数器、数据结构算法实现、实时系统支撑及限流控制。其丰富的数据类型和高效操作支持多种应用场景,提升系统性能。
672 2
|
消息中间件 存储 缓存
3分钟白话RocketMQ系列—— 如何消费消息
3分钟白话RocketMQ系列—— 如何消费消息
1236 0
|
存储 弹性计算 安全
阿里云服务器磁盘不够用怎么办?云盘扩容了解一下
随着业务员增长数据增多,阿里云服务器磁盘可能出现不够用的情况,怎么办?阿里云磁盘扩容了解一下
1548 0
阿里云服务器磁盘不够用怎么办?云盘扩容了解一下
|
算法 定位技术 C++
基本算法-回溯法(迷宫问题)
基本算法-回溯法(迷宫问题)
1436 0
|
分布式计算 Hadoop 大数据
Jupyter 在大数据分析中的角色
【8月更文第29天】Jupyter Notebook 提供了一个交互式的开发环境,它不仅适用于 Python 编程语言,还能够支持其他语言,包括 Scala 和 R 等。这种多语言的支持使得 Jupyter 成为大数据分析领域中非常有价值的工具,特别是在与 Apache Spark 和 Hadoop 等大数据框架集成方面。本文将探讨 Jupyter 如何支持这些大数据框架进行高效的数据处理和分析,并提供具体的代码示例。
352 0
|
Web App开发 开发者
|
11月前
|
机器学习/深度学习 人工智能 算法
数据挖掘/深度学习-高校实训解决方案
云原生一站式机器学习/深度学习/大模型AI平台,支持sso登录,多租户,大数据平台对接,notebook在线开发,拖拉拽任务流pipeline编排,多机多卡分布式训练,超参搜索,推理服务VGPU,边缘计算,serverless,标注平台,自动化标注,数据集管理,大模型微调,vllm大模型推理,llmops,私有知识库,AI模型应用商店,支持模型一键开发/推理/微调,支持国产cpu/gpu/npu芯片,支持RDMA,支持pytorch/tf/mxnet/deepspeed/paddle/colossalai/horovod/spark/ray/volcano分布式,私有化部署。
340 0
|
SQL 机器学习/深度学习 数据采集
SQL与Python集成:数据库操作无缝衔接2a.bijius.com
Python与SQL的集成是现代数据科学和工程实践的核心。通过有效的数据查询、管理与自动化,可以显著提升数据分析和决策过程的效率与准确性。随着技术的不断发展,这种集成的应用场景将更加广泛,为数据驱动的创新提供更强大的支持。
|
消息中间件 安全 Kafka
Python IPC机制全攻略:让进程间通信变得像呼吸一样自然
【9月更文挑战第12天】在编程领域,进程间通信(IPC)是连接独立执行单元的关键技术。Python凭借简洁的语法和丰富的库支持,提供了多种IPC方案。本文将对比探讨Python的IPC机制,包括管道与消息队列、套接字与共享内存。管道适用于简单场景,而消息队列更灵活,适合高并发环境。套接字广泛用于网络通信,共享内存则在本地高效传输数据。通过示例代码展示`multiprocessing.Queue`的使用,帮助读者理解IPC的实际应用。希望本文能让你更熟练地选择和运用IPC机制。
251 10
|
存储 机器学习/深度学习 算法
python 3种算法 回溯法、字典序生成、递归交换 实现全排列【力扣46题】
python 3种算法 回溯法、字典序生成、递归交换 实现全排列【力扣46题】