函数式程序的模块化和对象的模块化
来源:互联网 发布:淘宝买家信誉在哪里看 编辑:程序博客网 时间:2024/05/22 13:28
(define random-init 1)(define (rand-update x) (remainder (+ (* 13 x) 5) 24))(define (random-numbers op-stream) (define (numbers last-value op-stream) (let ((op (stream-car op-stream))) (cond ((pair? op) (cons-stream (cadr op) (numbers (cadr op) (stream-cdr op-stream)))) (else (let ((next-value (rand-update last-value))) (cons-stream next-value (numbers next-value (stream-cdr op-stream)))))))) (numbers random-init op-stream))(define the-op-stream (list->stream '(generate (reset 9))))(define the-random-numbers (random-numbers the-op-stream));要查看流中的全部元素,不能用“流.scm”里定义的show-n,因为最后只有一个元素的时候,op-stream是空,但还会调用numbers过程,所以需要利用延时求值(define (show-n-2 s n) (if (= n 0) '() (let ((the-s (force s))) (cons (stream-car the-s) (show-n-2 (delay (stream-cdr the-s)) (- n 1))))))(show-n-2 (delay the-random-numbers) 2);参考sicp-solution隐式定义的版本:(define (random-numbers op-stream) (define numbers (cons-stream random-init (stream-map (lambda (num op) (if (pair? op) (cadr op) (rand-update num))) numbers op-stream))) (stream-cdr numbers))(define the-random-numbers (random-numbers the-op-stream))(show-n-2 (delay the-random-numbers) 2)
0 0
- 函数式程序的模块化和对象的模块化
- 程序模块化的思考
- 程序模块化的阶段性总结
- 计算机程序的构造和解释 第三章 模块化、对象和状态
- 【计算机程序的构造和解释】第三章 模块化、对象和状态
- js模块化编程一:模块化函数的介绍
- OSGi (一) 模块化和Java中模块化的弊病
- 前端模块化之模块化工具gulp和webpack的安装。
- 程序的模块化的一些见解1
- 程序的模块化的一些见解2
- 程序的模块化的一些见解3
- 程序的模块化的一些见解4
- C++的封装(程序的模块化)
- 设计高模块化C程序的方法
- MFC程序轻量级模块化的实现
- 设计高模块化C程序的方法
- 程序的核心—重视模块化
- 内部模块化的命令行菜单小程序
- 相爱相杀的CP——初谈Android Kernel与 Linux Kernel
- STL源码剖析——set相关算法
- Linux下Mongodb安装和启动配置
- Java图片上传压缩处理
- Android Support Library介绍
- 函数式程序的模块化和对象的模块化
- 关于开发时遇到的乱码问题
- TCP/IP五层与OSI七层
- linux kernel learn1
- Android Fragment 解析(上)
- av_seek_frame中flags值的意义
- 欢迎使用CSDN-markdown编辑器
- synchronized的理解
- SAP GUI740 PATCH8 下载