也没什么

迷失了方向

练习2.21 2.23

#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))
阅读更多
版权声明:知行合一 https://blog.csdn.net/yemeishenme/article/details/51556898
想对作者说点什么? 我来说一句

Proxifier for Mac 2.21(带注册码)

2018年03月26日 3.54MB 下载

渐开线花键参数计算程序 2.21.exe

2014年12月11日 427KB 下载

Selenium ChromeDriver 2.21

2016年02月23日 11.26MB 下载

chromeDriver2.23合集

2016年08月07日 12.75MB 下载

gsoap 2.23 windows and linux source code

2011年06月26日 2.27MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭