练习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))
版权声明:知行合一

c++ primer 练习 2.21、2.23、2.24、2.25

.
  • u011392050
  • u011392050
  • 2017年03月03日 13:47
  • 212

【SICP练习】55 练习2.23

练习2.23 这道题就有小小的难度了。(define (for-each f lst)    (cond ((not (null? lst))            (f (car lst)) ...
  • NoMasp
  • NoMasp
  • 2015年02月22日 13:50
  • 2412

【SICP练习】53 练习2.21

练习2.21 如果在看SICP这本书之前做过其他准备工作,或者看过我的【Scheme归纳】那几篇文章,那这些题都是小case了。 (define (square-list items)     ...
  • NoMasp
  • NoMasp
  • 2015年02月22日 13:48
  • 1236

2.23

#include #include #include /*getpid()*/ void *create(void *arg) {     printf("New thread...
  • z1211t
  • z1211t
  • 2017年02月23日 22:27
  • 70

2.21

1) listView.setOnScrollListener(new OnScrollListener() {            @Override           publ...
  • u011819464
  • u011819464
  • 2014年02月21日 11:43
  • 361

编程之美2.21

题目: 写一个程序,输出它所有可能的连续自然数之和的算式   分析:假设可以写成连续i个自然数之和,假设这个序列第一个自然数为j,即为j , j+1,j+2,j+3...j+i-1,这个序列为等差...
  • zhanglei0107
  • zhanglei0107
  • 2012年02月24日 13:16
  • 1921

2.21 性能优化

day 21 性能优化 一、程序性能的分析 1,Profiler工具是Unity3D提供的一 套用于实时监控资源消耗的工具,通过使用该工具,我们可以直观地查看程序 运行时各个方面资源的占用情况,并...
  • cyy950611
  • cyy950611
  • 2017年09月19日 20:05
  • 116

glibc下各种堆溢出漏洞利用条件和方法总结

各种堆溢出漏洞总结溢出多个字节的情况一、利用条件一个chunk可以溢出,并且可以覆盖到下一个 chunk 的 size 位、fd、bk二、利用关键把 second chunk 的 size 覆盖为0,...
  • axiejundong
  • axiejundong
  • 2017年12月30日 13:50
  • 104

入门HTML之2.23

超级链接——锚点(书签) 1 2.23 指向本页面锚点aa的超级链接 描点链接联系 网站基础知识 一、 基本传输协议 另外一个需要了解的概念是HTTP : 超文本传输协议...
  • u012964828
  • u012964828
  • 2013年12月05日 22:24
  • 388

安装binutils 2.23.2

http://www.linuxfromscratch.org/lfs/view/7.4/chapter06/binutils.html
  • CHANGQINGTENGCJM
  • CHANGQINGTENGCJM
  • 2014年10月15日 10:54
  • 945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:练习2.21 2.23
举报原因:
原因补充:

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