zoukankan      html  css  js  c++  java
  • SICP学习笔记 第二章 (2.4)

    部分习题:

    exercise 2.73

    a)对求导过程来说,数字和变量的表示形式对任何“类型标志”(例如+)都是一致的,没有必要实现不同的表示方式。

    b)

     1 (define (install-deriv-sum-package)
     2   ;internal procedure
     3   (define (addend s) (cadr s))
     4   (define (augend s) (caddr s))
     5   (define (make-sum a1 a2)
     6     (cond ((=number? a1 0) a2)
     7       ((=number? a2 0) a1)
     8       ((and (number? a1) (number a2)) (+ a1 a2))
     9       (else (list '+ a1 a2))))
    10   ;interface
    11   (put 'addend '+ addend)
    12   (put 'augend '+ augend)
    13   (put 'make-sum '+ make-sum)
    14   (put 'deriv '+ (lambda (exp var)
    15            (make-sum (deriv (addend exp) var)
    16                  (deriv (augend exp) var))))
    17   'done)
    18 
    19 (define (install-deriv-product-package)
    20   ;internal pricedure
    21   (define (multiplier p) (cadr p))
    22   (define (multiplicand p) (caddr p))
    23   (define (make-product p1 p2)
    24     (cond ((or (=number? p1 0) (=number? p2 0)) 0)
    25       ((=number? p1 1) p2)
    26       ((=number? p2 1) p1)
    27       ((and (number? p1) (number? p2)) (* m1 m2))
    28       (else (list '* p1 p2))))
    29   ;interface
    30   (put 'multiplier '* multiplier)
    31   (put 'multiplicand '* multiplicand)
    32   (put 'make-product '* make-product)
    33   (put 'deriv '* (lambda (exp var)
    34            (make-sum (make-product (multiplier exp)
    35                        (deriv (multiplicand exp) var))
    36                  (make-product (deriv (multiplier exp) var)
    37                        (multiplicand exp)))))
    38   'done)

    exercise 2.74

    a)人事文件应当有一个tag信息,用于识别该文件属于哪一个分支机构。

    exercise 2.75

    1 (define (make-from-mag-ang x y)
    2   (define (dispatch x y)
    3     (cond ((eq? op 'real-part) (* x (cos y)))
    4           ((eq? op 'imag-part) (* x (sin y)))
    5           ((eq? op 'magnitude) x)
    6           ((eq? op 'angle) y)
    7           (else (error "Unkown op -- MAKE-FROM-MAG-ANG" op))))
    8   dispatch)
  • 相关阅读:
    noi放苹果
    二分 网线主管
    hdu 1421 dp
    hdu 1087 最大上升子序列的和(dp或线段树)
    快速排序+查找
    zoj 1425 最大交叉匹配
    hdu 3501 容斥原理或欧拉函数
    hdu 4671 异面直线的距离
    hdu 3320 计算几何(三维图形几何变换)
    hdu 2857 点在直线上的投影+直线的交点
  • 原文地址:https://www.cnblogs.com/sungoshawk/p/2774178.html
Copyright © 2011-2022 走看看