(wat-aro)

生きてます

2015-10-10から1日間の記事一覧

SICP 問題 2.5

(define (cons a b) (* (expt 2 a) (expt 3 b))) (define (car c) (define (iter n count) (if (< 0 (remainder n 2)) count (iter (/ n 2) (+ count 1)))) (iter c 0)) (define (cdr c) (define (iter n count) (if (< 0 (remainder n 3)) count (iter (/ n…

SICP 問題 2.4

(define (cons x y) (lambda (m) (m x y))) (define (car z) (z (lambda (p q) p))) ;; (car (cons x y)) (car (cons x y)) ((lambda (m) (m x y)) (lambda (p q) p)) ((lambda (p q) p) x y) x ;; cdr (define (cdr z) (lambda (p q) q))

SICP 問題 2.3

;; 長方形を高さと幅で定義 (define (make-rectangle height width) (cons height width)) (define (perimeter-rect rect) (+ (* 2 (height-rect rect)) (* 2 (width-rect rect)))) (define (area-rect rect) (* (height-rect rect) (width-rect rect))) (de…

SICP 問題 2.2

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

[SICP]SICP 問題 2.1

負の引数に対応したmake-rat (define (make-rat n d) (let* ((g (gcd n d)) (n1 (/ n g)) (d1 (/ d g))) (if (< d1 0) (cons (* -1 n1) (* -1 d1)) (cons n1 d1))))