2.56

 
;2.56求导
(define (deriv exp var)
  (cond ((number? exp) 0)
        ((variable? exp)
         (if (same-variable? exp var) 1 0))
        ((sum? exp)
         (make-sum (deriv (addend exp) var)
                   (deriv (augend exp) var)))
        ((product? exp)
         (make-sum
          (make-product (multiplier exp)
                        (deriv (multiplicand exp) var))
          (make-product (deriv (multiplier exp) var)
                        (multiplicand exp))))
        ((exponentiation? exp)
         (make-product (exponent exp)
                       (make-product (make-exponentiation (base exp) 
                                                          (- (exponent exp) 1))
                                     (deriv (base exp) var))))
        (else
         (error "unknown expression type --DERIV" exp))))

;variable?
(define (variable? x) (symbol? x))

;same-variable?
(define (same-variable? x y) (and (symbol? x) (symbol? y) (eq? x y)))

;make-sum
(define (make-sum . w)
  (define (iter s)
    (cond ((null? s) '())
          ((=number? 0 (car s)) (iter (cdr s)))
          (else (cons (car s) (iter (cdr s))))))
  (if (null? (cdr (iter w)))
      (car (iter w))
      (cons '+ (iter w))))

;make-product
(define (is-in x s)
  (if (null? s) 
      #f
      (or (eq? x (car s))
          (is-in x (cdr s)))))

(define (make-product . w)
  (define (iter s)
    (cond ((null? s) '())
          ((=number? 1 (car s)) (iter (cdr s)))
          (else (cons (car s) (iter (cdr s))))))
 (if(is-in 0 (iter w))
     0
     (if (null? (cdr (iter w)))
         (car (iter w))
         (cons '* (iter w)))))

;=number?
(define (=number? x y) (and (number? x) (number? y) (= x y)))

;sum?
(define (sum? x)
  (and (pair? x) (eq? (car x) '+)))

;addend 被加数 表示和式的第二个参数
(define (addend s) (cadr s))

;augend 加数 表示和式的第三个参数
(define (augend s) 
  (if (null? (cdddr s))
      (caddr s)
      (cons '+ (cddr s))))
;product?
(define (product? x)
  (and (pair? x) (eq? (car x) '*)))

;multiplier 被乘数是乘式第二个参数
(define (multiplier p) (cadr p))

;multiplicand 乘数是乘式里面的第三个参数
(define (multiplicand p) 
  (if (null? (cdddr p))
      (caddr p)
      (cons '* (cddr p))))

;exponentiation?
(define (exponentiation? x)
  (and (pair? x) (eq? (car x) '**)))

;make-exponentiation
(define (make-exponentiation base exponet)
  (cond ((=number? exponet 0) 1)
        ((=number? exponet 1) base)
        ((=number? base 0) 0)
        ((=number? base 1) 1)
        (else (list '** base exponet))))

;base?
(define (base x)
  (cadr x))

;exponet?
(define (exponent x)
  (caddr x))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CDIMAGE 2.52 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2000. All rights reserved. For Microsoft internal use only. Usage: CDIMAGE [options] sourceroot targetfile -l volume label, no spaces (e.g. -lMYLABEL) -t time stamp for all files and directories, no spaces, any delimiter (e.g. -t12/31/2000,15:01:00) -g encode GMT time for files rather than local time -h include hidden files and directories -n allow long filenames (longer than DOS 8.3 names) -nt allow long filenames, restricted to NT 3.51 compatibility (-nt and -d cannot be used together) -d don't force lowercase filenames to uppercase -c use ANSI filenames versus OEM filenames from source -j1 encode Joliet Unicode filenames AND generate DOS-compatible 8.3 filenames in the ISO-9660 name space (can be read by either Joliet systems or conventional ISO-9660 systems, but some of the filenames in the ISO-9660 name space might be changed to comply with DOS 8.3 and/or ISO-9660 naming restrictions) -j2 encode Joliet Unicode filenames without standard ISO-9660 names (requires a Joliet operating system to read files from the CD) When using the -j1 or -j2 options, the -n, -nt, and -d options do not apply and cannot be used. -js non-Joliet "readme.txt" file for images encoded with -j2 option (e.g. -jsc:\location\readme.txt). This file will be visible as the only file in the root directory of the disc on systems that do not support the Joliet format (Windows 3.1, NT 3.x, etc). -u1 encode "UDF-Bridge" media -u2 encode "UDF" file system without a mirror ISO-9660 file system (requires a UDF capable operating system to read the files) -ur non-UDF "readme.txt" file for images encoded with -u2 option (e.g. -usc:\location\readme.txt). This file will be visible as the only file in the root directory of the disc on systems that do not support the UDF format. -us sparse UDF files -ue embed file data in UDF extent entry -uf embed UDF FID entries -uv UDF Video Zone compatibility enforced -b "El Torito" boot sector file, no spaces (e.g. -bc:\location\cdboot.bin) -p Platform ID for the "El Torito" boot catalog -e Do not set floppy emulation mode in El Torito boot catalog -s sign image file with digital signature (no spaces, provide RPC server and endpoint name like -sServerName:EndPointName) -x compute and encode "AutoCRC" values in image -o optimize storage by encoding duplicate files only once -oc slower duplicate file detection using binary comparisons rather than MD5 hash values -oi ignore diamond compression timestamps when comparing files -os show duplicate files while creating image (-o options can be combined like -ocis) -w warning level followed by number (e.g. -w4) 1 report non-ISO or non-Joliet compliant filenames or depth 2 report non-DOS compliant filenames 3 report zero-length files 4 report each file name copied to image -y test option followed by number (e.g. -y1), used to generate non-standard variations of ISO-9660 for testing purposes: 1 encode trailing version number ';1' on filenames (7.5.1) 2 round directory sizes to multiples of 2K (6.8.1.3) 5 write \i386 directory files first, in reverse sort order 6 allow directory records to be exactly aligned at ends of sectors (ISO-9660 6.8.1.1 conformant but breaks MSCDEX) 7 warn about generated shortnames for 16-bit apps under NT 4.0 b blocksize 512 bytes rather than 2048 bytes d suppress warning for non-identical files with same initial 64K l UDF - long ads used in file entries instead of short ads r UDF - number of ad's is random w open source files with write sharing t load segment in hex for El Torito boot image (e.g. -yt7C0) f use a faster way to generate short names -k (keep) create image even if fail to open some of the source files -m ignore maximum image size of 681,984,000 bytes -a allocation summary shows file and directory sizes -q scan source files only, don't create an image file NOTE: Many of these options allow you to create CD images that are NOT compliant with ISO-9660 and may also NOT be compatibile with one or more operating systems. If you want strict ISO and DOS compliance, use the -w2 warning level and correct any discrepencies reported. YOU are responsible for insuring that any generated CDs are compatible with all appropriate operating systems. Also note that Microsoft company information is placed in the image volume header, so don't use this program
微软内部镜像封装工具:CDIMAGE_2.54 参数: CDIMAGE 2.46 CD-ROM and DVD-ROM Premastering Utility Copyright (C) Microsoft, 1993-2000. All rights reserved. For Microsoft internal use only. Usage: CDIMAGE [參數] 來源目錄 目標影像檔 -l 光碟標籤,不含空白鍵 (e.g. -lMYLABEL) -t 將所有檔案和目錄都設為同一日期,不含空白鍵和任何特殊符號 (e.g. -t12/31/2000,15:01:00) -g 將時間設為 GMT 時間而非本地時間 -h 包含隱藏檔和隱藏目錄 -n 允許長檔名 (超過 8.3 檔名) -nt 允許長檔名,但受限於 NT3.51 相容性 (-nt 和 -d 不可同時使用) -d 不強制將小寫檔名改為大寫檔名 -c 使用 ANSI 檔名以對應原始目錄中的 OEM 檔名 -j1 編碼為 Joliet Unicode 檔名並在 ISO-9660 名稱空間中產生相容於 DOS 的 8.3 檔名格式. (可在 Joliet 系統或其他一般的 ISO-9660 系統中被讀取, 但某些檔名在 ISO-9660 名稱空間中可能會被改變, 以遵守 DOS 8.3 與 ISO-9660 命名限制) -j2 編碼為 Joliet Unicode 檔名而不遵守 ISO-9660 檔名規則 (必須在 Joliet 作業系統從 CD 讀取檔案) 當使用 -j1 或 -j2 參數時, -n, -nt, 和 -d 參數無法生效 並且不可使用. -js 以 -j2 參數將影像檔中的非 Joliet 檔案 "readme.txt" 編碼. (e.g. -jsc:\location\readme.txt). 這樣可以讓這張光碟的這個唯一的檔案在不支援 Joliet 格式的系統中 (Windows 3.1, NT 3.x...等)被看見. -u1 編碼為 "UDF-Bridge" 媒體 -u2 編碼為 "UDF" 檔案系統而不對映 ISO-9660 檔案系統 (必須有 UDF 相容作業系統才可讀取檔案) -ur 以 -u2 參數將影像檔中的非 UDF 檔案 "readme.txt" 編碼. (e.g. -usc:\location\readme.txt). 這樣可以讓這張光碟的這個唯一的檔案在不支援 UDF 格式的系統中 被看見. -us 分散 UDF 檔案 -ue embed file data in UDF extent entry -uf embed UDF FID entries -uv UDF Video Zone compatibility enforced -b "El Torito" 開機區段檔案,不佔檔案空間 (e.g. -bc:\location\cdboot.bin) -p Platform ID for the "El Torito" boot catalog -e 在 El Torito 開機記錄中設置不模擬軟碟。 -s 在影像檔中加入數位簽章 (不佔空間, 必須提供 RPC 伺服器與終點名稱如下 -sServerName:EndPointName) -x 在影像檔中計算與編碼 "AutoCRC" 值 -o 處理重複檔名以將影像檔大小最佳化 (譯註:縮小影像檔容量,即本程式之精華所在) -oc 使用二進位比對代替 MD5 雜湊值, 這會以較慢的速度比對重複的檔案. -oi 比對檔案時忽略高度壓縮的時間戳記 -os 建立影像檔時顯示重複的檔名 (-o 等類似參數不可簡寫為 -ocis) -w 依照數字提供不同的警告等級 (e.g. -w4) 1 回報非 ISO 或非 Joliet 相容檔名或路徑 2 回報非 DOS 相容檔名 3 回報長度為零的檔案 4 回報每一個加入影像檔中的檔名 -y 依照數字提供不同的測試選項 (e.g. -y1),用於測試用途, 可產生不遵守 ISO-966

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值