December 29 2006

本文定义了Scheme语言中用于操作流的三个宏:cons-stream、car-stream 和 cdr-stream。解释了为什么cons-stream不能被定义为函数的原因,并提到了无限递归的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(define-syntax cons-stream
  (lambda (x)
    (syntax-case x ()
      ((_ a b) (syntax (cons a (delay b)))))))

(define-syntax car-stream
  (lambda (x)
    (syntax-case x ()
      ((_ s) (syntax (car s))))))

(define-syntax cdr-stream
  (lambda (x)
    (syntax-case x ()
      ((_ s) (syntax (force (cdr s)))))))

  The above macros defined three operation on a stream.  Note that the "cons-stream" is not defined a function.  But you
can try it.  You will find that definition can result in a infinite loop.  Why?  The scheme interpertor usually evaluates
a value before passing a argument into a parameter of a function.  So, before making a stream the scheme interpertor trap
into trying making that infinite stream.

  Today is the last work day this year.  I have a holiday for four days.  I am going to Shanghai again and take Mike yao's
computer, at once I will discuss with him about MPEG4. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值