练习2.21 2.23
来源:互联网 发布:c语言define的位置 编辑:程序博客网 时间:2024/05/22 23:59
#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))
0 0
- 练习2.21 2.23
- 练习2.21-练习2.35
- 【SICP练习】55 练习2.23
- 【SICP练习】53 练习2.21
- c++ primer 练习 2.21、2.23、2.24、2.25
- 练习
- “++”“--”练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 1025. 反转链表 (25)
- Linux Crontab命令使用详解
- ie下不打开控制台js无法执行
- 系统分析员考试复习笔记-8 第八章 软件工程
- 88----oracle大对象,boolean,date的处理
- 练习2.21 2.23
- Swift开篇009->方法
- 12 打印1到最大的N位数(递归和非递归解法)
- 欢迎使用CSDN-markdown编辑器
- 初识java.util.concurrent.CountDownLatch
- 《图解TCP/IP》读书笔记(5)
- 4.1.按键--按下按键使LED点亮
- android中异步任务
- 状态栏字体颜色控制