【SICP练习】137 练习3.68

练习3-68

原文

Exercise 3.68. Louis Reasoner thinks that building a stream of pairs from three parts is unnecessarily complicated. Instead of separating the pair (S0,T0) from the rest of the pairs in the first row, he proposes to work with the whole first row, as follows:

(define (pairs s t)
   (interleave (stream-map (lambda (x) (list (stream-car s) x))
               t)
   (pairs (stream-cdr s) (stream-cdr t))))

Does this work? Consider what happens if we evaluate (pairs integers integers) using Louis’s definition of pairs.

分析

不会工作,这个程序将会陷入无限循环。因为没有在

(pairs (stream-cdr s) (stream-cdr t))

中使用delay进行延时求值,而这又会不断的递归,因此将进入无线循环中。

时间: 2024-08-25 18:40:57

【SICP练习】137 练习3.68的相关文章

学习日志---7

1.复习Linux hadoop hdfs MapReduce基础知识 1,列举linux常用命令 shutdown now reboot mkdir mkdir -p touch filename rm -r filename rm -rf filename vi filename i--->可编辑状态 esc --> : --->wq 保存退出 q! wq! cat grep find ifconfig ping useradd chmod 777 filename more cp

借助Photoshop,Illustrator等设计软件进行WPF图形图像的绘制

原文:借助Photoshop,Illustrator等设计软件进行WPF图形图像的绘制 本文所示例子是借助第三方设计软件,制作复杂的矢量图形,转成与XAML酷似的SVG,再转换成xaml而实现的. 这是原图: 使用Photoshop处理后的二值图片:为何处理成黑白的二值图片呢,是方便使用Illustrator中的自动描路径工具进行图片的轮廊(路径)处理.这是制作后得到的XAML效果图片: 这是XAML代码: <Viewbox Width="343.8" Height="

【SICP练习】95 练习2.68

练习2.68 先要导入练习2.67中的sample-tree.这道题要求我们写出能够根据给定的树产生出给定符号的二进制位表的函数encode-symbol,这个函数还要能够在遇到未在树中出现的符号时报错.这个函数将要在给定的树中查找给定符号的叶子节点,并记录下寻找过程中的左右方向,当然了,如书中所说,向左则用0,向右则用1.因此该函数可以如下列出.我们先来写那个检测错误的谓词. (define (symbol-in-tree? gven-symbol tree) (not (false? (fi

【SICP练习】68 练习2.39

 练习2.39 通过前一习题的类比相信已经知道了fold-left和fold-right的内在意义,本题中要求的逆序数可以用cons来构造.具体为,先将list的第一个元素取出用(cons (car list) '() )构造,接着第二个.第三个--用(cons -- (cons (car (car list) ) (cons (carlist) '()))).当然了,在这个递归的过程中我们并不需要(car (car list)),用(car list)不断的代换list即可. 根据题目中设

Effective JavaScript: 编写高质量JavaScript代码的68个有效方法(目录)

本书赞誉译者序序前言第 1 章 让自己习惯 JavaScript 1第 1 条: 了解你使用的 JavaScript版本 1第 2 条:理解 JavaScript 的浮点数 6第 3 条:当心隐式的强制转换 8第 4 条:原始类型优于封装对象 13第 5 条: 避免对混合类型使用== 运算符 14第 6 条:了解分号插入的局限 16第 7 条: 视字符串为 16 位的代码单元序列 21第 2 章 变量作用域 25第 8 条:尽量少用全局对象 25第 9 条:始终声明局部变量 27第 10 条:避

SICP 习题 (2.1) 解题总结

SICP 习题 2.1 要求我们做一个可以正确处理正数和负数的make-rat过程,用于生成一个有理数.条件是分母必须是正数. 完成这道题本身比较简单,就是简单修改一下书中的make-rat过程就可以了. 书中原本的make-rat过程如下: (define (make-rat n d) (cons n d)) 可以发现,原来的make-rat就是简单地将n和d组成一个序对,然后返回这个序对,并没有对分子和分母进行判断. 我们要做的就是修改make-rat过程,判断一下分母d是不是小于0,如果分

68、TSPL指令集(标签打印机)

0.开发者pdf.sdk等资料详见: http://download.csdn.net/detail/kunyashaw/9376694 1.测试代码 包含文字打印.条形码打印.二维码打印 1 package com.huofu.speechundecrypt; 2 3 import android.content.Context; 4 import android.os.Bundle; 5 import android.support.v7.app.AppCompatActivity; 6 i

No.68 Text Justification

No.68 Text Justification Given an array of words and a length L, format the text such that each line has exactly L characters and is fully (left and right) justified. You should pack your words in a greedy approach; that is, pack as many words as you

hadoop系列 第三坑: Task process exit with nonzero status of 137

跑MR的时候抛出异常: java.lang.Throwable: Child Error at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:250) Caused by: java.io.IOException: Task process exit with nonzero status of 137. at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.java:237)