练习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)...

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

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

webalizer-2.23-05 for squid

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

Swift学习:2.23 权限控制

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

第一周作业(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

例题2.23 细胞自动机 LA3740

1.题目描述:点击打开链接 2.解题思路:矩阵快速幂 3.代码: #include #include #include #include #include #include #include #inc...

win7下android+Cocos2d-x 2.23 环境搭建

我自己是按照这篇博客学习搭建的 win32的环境就不在描述了 感谢作者 之所以自己在写一篇是为了加强记忆 共享资源 原作者博客:http://blog.csdn.net/aa4790139/art...

Python核心编程(第二版)2.21练习题答案

2-1:               print 调用str()        交互式解释器嗲用repr() ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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