summaryrefslogtreecommitdiff
path: root/coding-exercises/2/9.rkt
blob: 05258024e503ad17c957c3d443df0f17f4b2245c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#lang racket
(provide
  width)
(require 
  "7.rkt"
  "8.rkt"
  "9.rkt")

(define (width x)
  (/ (- (upper-bound x) (lower-bound x)) 2))
 
(define (print-sum)
  (newline)
  (println "*** (width SUM) == (SUM width) ***")
  (define a (make-interval 1 8))
  (define b (make-interval 3 8))
  (define c (add-interval a b))
  (define d (sub-interval a b))
  (define add-width (lambda (x y) (+ (width x) (width y))))
  (print-interval a) (newline) (println (width a))
  (print-interval c) (newline) (println (width c))
  (println (add-width a b))
  (print-interval d) (newline) (println (width d))
  (println (add-width a b)))
(print-sum)

(define (print-mul)
  (newline) (println " http://community.schemewiki.org/?sicp-ex-2.9 ")
  (newline) (println " *** Multiplication: two pairs of different intervals with same width *** ")
  (newline) (println " Can also be check algebraicly")
  (define a (make-interval 1 8))
  (define b (make-interval 3 8))
  (define c (make-interval 0 7))
  (define d (make-interval 0 5))
  (println (width (mul-interval a b)))
  (newline)
  (println (width (mul-interval c d))))
(print-mul)