练习2.21 2.23

原创 2016年06月01日 16:16:57
#lang racket
;: 练习 2.21

(define nil '())

(define square
  (lambda (x) (* x x)))

#|
(define (square-list items)
  (if (null? items)
      nil
      (cons (square (car items))
            (square-list (cdr items)))))

(define (square-list items)
  (map square items))


|#

;: 练习 2.22

#|
(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              (cons (square (car things))
                    answer))))
  (iter items nil))

(square-list '(1 2 3 4)) ;: 输发顺序相反,为什么?展开一下:
(iter '(1 2 3 4) nil) =>
(iter '(2 3 4) (cons 1 nil)) =>
(iter '(3 4) (cons 4
                   (cons 1 nil))) =>
(iter '(4) (cons 9
                 (cons 4
                       (cons 1 nil)))) =>
(iter nil (cons 16
                (cons 9
                      (cons 4
                            (cons 1 nil))))) =>
(cons 16 (cons 9 (cons 4 ( cons 1 nil)))) =>
'(16 9 4 1)
|#
#|
(define (square-list items)
  (define (iter things answer)
    (if (null? things)
        answer
        (iter (cdr things)
              (cons answer (square (car things))
                    ))))
  (iter items nil))

(square-list '(1 2 3 4)) ;: 输发顺序相反,为什么?展开一下:
=>
(iter '(2 3 4) (cons nil
                     1))
=>
(iter '(3 4) (cons (cons nil
                         1)
                   4))
=>
(iter '(4) (cons (cons (cons nil
                             1)
                       4)
                 9))
=>
(cons (cons (cons (cons nil
                        1)
                  4)
            9)
      16)
=> '((((() . 1) . 4) . 9) . 16)
|#

;: 练习2.23
;(define (for-each proc item)
;  (map proc item))

(define (for-each proc items)
  (if (not (null? items))
      (begin
        (proc (car items))
        (for-each proc (cdr items)))
      nil)) ;: 这个是else 部分。。。 在racket 语言中,必须要有。。


(for-each display '(1 2 3 4))
版权声明:知行合一

《Python核心编程》中文第二版课后练习2.21答案

2-2 (a)计算1 + 2 * 4 (b)无输出 (c)一样。无输出语句。 (d)单独执行无输出,在交互解释器里执行输出结果。 (e)print 1 + 2 * 4 2-4 (a)...
  • mzlogin
  • mzlogin
  • 2012年04月05日 23:00
  • 2477

小练习3与4,为代码2.21添加查询功能

在support.h中声明 bool query() 在function.cpp中的函数void Usage()添加 printf("shearch info :-sh\n"); ...

2.23学习心得 Matlab graythresh函数 形态学开闭操作,腐蚀膨胀的作用

关于graythresh 函数 函数功能:使用最大类间方差法找到图片的一个合适的阈值(threshold)。在使用im2bw函数将灰度图像转换为二值图像时,需要设定一个阈值,这个函数可以帮助我们获...

webalizer-2.23-05 for squid

介绍:    webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用web...

第一周作业(2.23)

第一周作业目录: 本周完成题目 主要过程思路 相关代码 感想与总结 一、本周完成题目 本周共完成六道题目,其中1道Easy,4道Medium,1道Hard。由于基本都为Array分类中的题目且题目...

从头认识多线程-2.23 静态内部类的同步机制跟普通类相同

这一章节主要讨论静态内部类的同步机制跟普通类相同。1.当同步方法的时候package com.ray.deepintothread.ch02.topic_23; /** * * @author...

2.23 Apps must follow the iOS Data Storage Guidelines or they will be rejected

国庆前提交审核的App,今天bei

IOS审核 2.23问题

Reasons 2.23: Apps must follow the iOS Data Storage Guidelines or they will be rejected 2.23 ...

Swift学习:2.23 权限控制

参考Swift 官方教程《The Swift Programming Language》中文版 访问控制 访问控制可以限定你在源文件或模块中访问代码的级别,也就是说可以控制哪些代码你可以访...

算法设计题2.23-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版

算法设计题2.23-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习2.21 2.23
举报原因:
原因补充:

(最多只允许输入30个字)