`
simohayha
  • 浏览: 1403371 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

在Drscheme使用stream的问题

    博客分类:
  • FP
阅读更多
这几天的sicp第三章快结束了,可是stream这边,我始终无法在drscheme中使用,因此在google大神的帮助下,找到了解决方法;

原文在这里:
http://schemewiki.org/view/Cookbook/MiscSICP

要在drscheme中使用stream,必须在代码中加入下面这部分:
(require (lib "defmacro.ss"))

; cons-stream : obj stream ->  stream
;   construct a stream whose first element is obj and whose tail is stream
;   [cons-stream is a special form]
(define-macro cons-stream
  (lambda (car cdr)
    `(cons ,car (delay ,cdr))))


为什么要用define-macro不是很懂,我直接用define的话下面使用cons-stream构造无限流时就会报错,忘达人解释一下.

PS:知道原因了,哈哈 原来是:

引用
定义宏可以自定义新的语法结构, 主要是可以防止求值

也就是 惰性求值..
分享到:
评论

相关推荐

    make drscheme的安装

    在深入探讨如何安装并使用DrScheme的make功能之前,我们先简要了解一下DrScheme及其make工具的基本概念。DrScheme是Racket编程语言(原PLT Scheme)的一个集成开发环境(IDE),它提供了一个交互式的编程环境,非常...

    How to Design Worlds: Imaginative Programming in DrScheme

    标题“如何设计世界:在DrScheme中的创造性编程”明确指出本书的主题是关于使用DrScheme这一环境来进行世界模拟程序的设计与开发。这里的“世界”指的是由一系列规则定义的、能够随时间变化的状态系统。DrScheme是一...

    DrScheme lisp

    Lisp 方言 Scheme 的一个解释器,可以按照在 Windows 系统上,使用非常方便,也很只智能。

    SICP 使用的scheme解释器

    SICP 使用的scheme解释器 以前叫DrScheme

    How To Design Programs scheme入面经典

    综上所述,《如何设计程序》不仅提供了实用的编程技巧,更重要的是教会读者一种系统性的思维方式,使他们能够在面对复杂问题时能够独立思考并寻找解决方案。无论是对于想要入门编程的学生还是希望提升自身逻辑思维...

    How to Design Programs_ An Introduction to Programming and Computing

    在本书中,作者选择了Lisp语言和DrScheme环境作为教学工具,因为它们被广泛认为是编程教育中非常有力量的工具。通过本书,读者将了解如何处理数据、设计程序、编写函数,以及如何处理复杂的编程问题。 书中的内容被...

    Lisp语言教程[参照].pdf

    4. **尾递归(Tail Recursion)**:Scheme支持尾递归优化,这使得递归函数在内存使用上更为高效,不会因为递归深度增加而导致栈溢出。 5. **函数可以作为值返回**:Scheme中的函数是第一类公民,这意味着函数可以被...

    HTDP 如何设计程序

    - **第2章**:探讨数字和算术操作的基础知识,变量的概念及其在程序中的应用,以及如何解决简单的文字问题。 - **第3章**:讨论函数和变量定义的作用,并通过一系列练习加深理解。 - **第4章**:介绍布尔值、关系...

    an introduction to computing and programming (using Scheme)

    总的来说,《如何设计程序》是一本适合初学者的编程入门书籍,通过使用Scheme语言,它不仅教授编程技术,更注重培养读者的逻辑思维和问题解决能力,是计算机科学教育领域的一次重要尝试。对于想要提升自身计算思维和...

    Lisp语言教程(Scheme)

    - **简洁性**:Scheme语言以其简洁著称,允许程序员将更多的精力集中在解决实际问题上,而不是语言本身。 - **灵活性**:Scheme不仅可以用作脚本语言,还可以作为应用程序的扩展语言。 - **元语言特性**:Scheme...

    Scheme语言概要[定义].pdf

    4. **尾递归(Tail Recursion)**:优化递归调用,确保在内存使用上更有效率。 5. **函数作为值返回**:函数可以像其他值一样被赋值、传递和存储,增强了函数式编程的能力。 6. **一流的计算连续传值调用(Passing...

    LISP语言教程

    标准Scheme不支持多行注释,但在某些实现中提供了多行注释的支持,如Guile中使用`#!`和`!#`作为开始和结束标记。 通过以上介绍可以看出,Scheme语言虽然在商业应用方面并不突出,但在学术研究、教学以及编程语言...

    Scheme 语言概要(上)

    4. **尾递归(Tail Recursion):** Scheme优化了尾递归调用,这意味着可以高效地使用递归来编写程序,而不用担心栈溢出的问题。 5. **函数可以作为值返回:** 在Scheme中,函数可以像其他数据类型一样传递和返回,这...

    schemeNLP:很久以前在ESSLLI教授的用于计算语言学,自然语言处理,语料库分析的方案代码

    此外,schemeNLP的使用能显著提高语料库分析的效率和深度,从而在NLP领域提供了有价值的视角和方法论。尽管schemeNLP可能源自较早的研究时期,它所依赖的基础原理和方法依然在现代NLP的研究与开发中占有重要地位,...

    OpenLang (Programming Lang)-开源

    类似于C的编程语言,在scheme *中隐含了一些类似Java的元素。 纯粹是为了学习,尽管您可以使用它编写一些程序。 写在DrScheme。

Global site tag (gtag.js) - Google Analytics