2008-08-27から1日間の記事一覧

問題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 (…

問題2.62

(define (union-set set1 set2) (define (iter set1 set2 product) (cond ((null? set1) (append product set2)) ((null? set2) (append product set1)) (else (let ((x1 (car set1)) (x2 (car set2))) (cond ((= x1 x2) (iter (cdr set1) (cdr set2) (appen…

問題2.61

(define (element-of-set? x set) (cond ((null? set) #f) ((= x (car set)) #t) ((< x (car set)) #f) (else (element-of-set? x (cdr set))))) (define (intersection-set set1 set2) (if (or (null? set1) (null? set2)) '() (let ((x1 (car set1)) (x2 (…

問題2.60

(define (element-of-set? x set) (cond ((null? set) #f) ((equal? x (car set)) #t) (else (element-of-set? x (cdr set))))) (element-of-set? 4 '(1 2 3 2 3 1 5 4)) ;#t (element-of-set? 6 '(1 2 3 2 3 1 5 4)) ;#f (define adjoin-set cons) (adjoin-…

問題2.59

(define (element-of-set? x set) (cond ((null? set) #f) ((equal? x (car set)) #t) (else (element-of-set? x (cdr set))))) (define (adjoin-set x set) (if (element-of-set? x set) set (cons x set))) (define (intersection-set set1 set2) (cond ((…

問題2.58

;わかるまでに時間がかかりそうなのでひとまず飛ばす

問題2.57

;わかるまでに時間がかかりそうなのでひとまず飛ばす

問題2.55

(car ''abracadabra) (car (quote (quote abracadabra))) ;(quote (quoteなので、quoteは「そのものをあらわす」(つまり、評価しない)という意味があるので、quoteと表示された。

問題2.54

(define (equal? li1 li2) (cond ((and (null? li1) (null? li2)) #t) ((and (symbol? li1) (symbol? li2)) (eq? li1 li2)) ((and (pair? li1) (pair? li2)) (and (equal? (car li1) (car li2)) (equal? (cdr li1) (cdr li2)))) (else (eq? li1 li2)))) (equ…

問題2.53

(list 'a 'b 'c) ;(a b c) (list (list 'george)) ;((george)) (cdr '((x1 x2) (y1 y2))) ;((y1 y2)) (cadr '((x1 x2) (y1 y2))) ;((y1 y2)) (pair? (car '(a short list))) ;#f (memq 'red '((red shoes) (blue socks))) ;#f (memq 'red '(red shoes blue s…

問題2.52

(add-load-path ".") (load "2.49.scm") (define (corner-split2 painter n) (if (= n 0) painter (let ((right (right-split painter (- n 1))) ((up (rotate90 (right-split (rotate270 painter)))))) (let ((top-left (beside up up)) (bottom-right (bel…

問題2.49 , 問題2.50 , 問題2.51

(use gl) (use gl.glut) (define (make-vect x y) (cons x y)) (define (xcor-vect vect) (car vect)) (define (ycor-vect vect) (cdr vect)) (define (add-vect v1 v2) (make-vect (+ (xcor-vect v1) (xcor-vect v2)) (+ (ycor-vect v1) (ycor-vect v2)))) …

問題2.48

(define (make-segment x y) (cons x y)) (define (start-segment x) (car x)) (define (end-segment x) (cdr x))

問題2.47

(define (make-frame origin edge1 edge2) (list origin edge1 edge2)) (define (edge1-frame frame) (cadr frame)) (define (edge2-frame frame) (caddr frame)) (define (origin-frame frame) (car frame)) (define f1 (make-frame (cons 1 2) 1 2)) (edge…

問題2.46

この前のやつにスターとかつけてくれた人がいて申し訳ないんだけど、あれは、問題2.45までしか出来ない形だ。 そのあとに、ちゃんとSICPなりの作り方が書いてあった。 基本手続きの定義を作るのはちょっと早すぎた。 これ以降のほうが正しい。 (define (make…

またさぼってた

うーむ 夏はいつもだらけるなー、どうしてだろう。 いつも上手くいかない。時間はあるはずなんだけど・・・。 そろそろ涼しくなってきたので、いい加減再起動しないと。