Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
; - Program 4.1, pg. 96 - (define append (lambda (ls1 ls2) (if (null? ls1) ls2 (cons (car ls1) (append (cdr ls1) ls2))))) ; - End Program - ; - Program 4.2, pg. 97 - (define reverse (lambda (ls) (if (null? ls) '() (append (reverse (cdr ls)) (list (car ls)))))) ; - End Program - ; - Program 4.3, pg. 98 - (define merge (lambda (sorted-ntpl1 sorted-ntpl2) (cond ((null? sorted-ntpl1) sorted-ntpl2) ((null? sorted-ntpl2) sorted-ntpl1) ((< (car sorted-ntpl1) (car sorted-ntpl2)) (cons (car sorted-ntpl1) (merge (cdr sorted-ntpl1) sorted-ntpl2))) (else (cons (car sorted-ntpl2) (merge sorted-ntpl1 (cdr sorted-ntpl2))))))) ; - End Program - ; - Program 4.4, pg. 98 - (define even? (lambda (int) (if (zero? int) #t (odd? (sub1 int))))) ; - End Program - ; - Program 4.5, pg. 99 - (define odd? (lambda (int) (if (zero? int) #f (even? (sub1 int))))) ; - End Program - ; - Program 4.6, pg. 100 - (define remove (lambda (item ls) (cond ((null? ls) '()) ((equal? (car ls) item) (remove item (cdr ls))) (else (cons (car ls) (remove item (cdr ls))))))) ; - End Program - ; - Program 4.7, pg. 102 - (define count-all (lambda (ls) (cond ((null? ls) 0) ((not (pair? (car ls))) (add1 (count-all (cdr ls)))) (else (+ (count-all (car ls)) (count-all (cdr ls))))))) ; - End Program - ; - Program 4.8, pg. 105 - (define remove-all (lambda (item ls) (cond ((null? ls) '()) ((equal? (car ls) item) (remove-all item (cdr ls))) ((pair? (car ls)) (cons (remove-all item (car ls)) (remove-all item (cdr ls)))) (else (cons (car ls) (remove-all item (cdr ls))))))) ; - End Program - ; - Program 4.9, pg. 105 - (define remq-all (lambda (symbl ls) (cond ((null? ls) '()) ((pair? (car ls)) (cons (remq-all symbl (car ls)) (remq-all symbl (cdr ls)))) ((eq? (car ls) symbl) (remq-all symbl (cdr ls))) (else (cons (car ls) (remq-all symbl (cdr ls))))))) ; - End Program - ; - Program 4.10, pg. 107 - (define reverse-all (lambda (ls) (if (null? ls) '() (append (reverse-all (cdr ls)) (list (if (pair? (car ls)) (reverse-all (car ls)) (car ls))))))) ; - End Program - ; - Program 4.13, pg. 110 - (define depth (lambda (item) (if (not (pair? item)) 0 (max (add1 (depth (car item))) (depth (cdr item)))))) ; - End Program - ; - Program 4.14, pg. 111 - (define flatten (lambda (ls) (cond ((null? ls) '()) ((pair? (car ls)) (append (flatten (car ls)) (flatten (cdr ls)))) (else (cons (car ls) (flatten (cdr ls))))))) ; - End Program - ; - Program 4.15, pg. 113 - (define remove-left-most (lambda (item ls) (cond ((null? ls) '()) ((equal? (car ls) item) (cdr ls)) ((not (pair? (car ls))) (cons (car ls) (remove-left-most item (cdr ls)))) ((member-all? item (car ls)) (cons (remove-left-most item (car ls)) (cdr ls))) (else (cons (car ls) (remove-left-most item (cdr ls))))))) ; - End Program - ; - Program 4.16, pg. 113 - (define member-all? (lambda (item ls) (if (null? ls) #f (or (equal? (car ls) item) (and (not (pair? (car ls))) (member-all? item (cdr ls))) (and (pair? (car ls)) (or (member-all? item (car ls)) (member-all? item (cdr ls)))))))) ; - End Program - ; - Program 4.17, pg. 114 - (define remove-left-most (lambda (item ls) (cond ((null? ls) '()) ((equal? (car ls) item) (cdr ls)) ((and (pair? (car ls)) (member-all? item (car ls))) (cons (remove-left-most item (car ls)) (cdr ls))) (else (cons (car ls) (remove-left-most item (cdr ls))))))) ; - End Program - ; - Program 4.18, pg. 116 - (define fact (lambda (int) (if (zero? int) 1 (* int (fact (sub1 int)))))) ; - End Program - ; - Program 4.19, pg. 118 - (define fact-it (lambda (int acc) (if (zero? int) acc (fact-it (sub1 int) (* acc int))))) ; - End Program - ; - Program 4.20, pg. 121 - (define fib (lambda (int) (if (< int 2) int (+ (fib (- int 1)) (fib (- int 2)))))) ; - End Program - ; - Program 4.24, pg. 124 - (define fib-it (lambda (int acc1 acc2) (if (= int 1) acc2 (fib-it (sub1 int) acc2 (+ acc1 acc2))))) ; - End Program - ; - Program 4.25, pg. 127 - (define reverse-it (lambda (ls acc) (if (null? ls) acc (reverse-it (cdr ls) (cons (car ls) acc))))) ; - End Program -