aboutsummaryrefslogtreecommitdiff
path: root/Semestr 2/racket/deriv.rkt
diff options
context:
space:
mode:
authorFranciszek Malinka <franciszek.malinka@gmail.com>2021-10-05 21:49:54 +0200
committerFranciszek Malinka <franciszek.malinka@gmail.com>2021-10-05 21:49:54 +0200
commitc5fcf7179a83ef65c86c6a4a390029149e518649 (patch)
treed29ffc5b86a0d257453cedcf87d91a13d8bf3b0d /Semestr 2/racket/deriv.rkt
parentf8a88b6a4aba1f66d04711a9330eaba49a50c463 (diff)
Duzy commit ze smieciami
Diffstat (limited to 'Semestr 2/racket/deriv.rkt')
-rw-r--r--Semestr 2/racket/deriv.rkt47
1 files changed, 0 insertions, 47 deletions
diff --git a/Semestr 2/racket/deriv.rkt b/Semestr 2/racket/deriv.rkt
deleted file mode 100644
index 0eef9d2..0000000
--- a/Semestr 2/racket/deriv.rkt
+++ /dev/null
@@ -1,47 +0,0 @@
-#lang racket
-
-(define (variable? x) (symbol? x))
-
-(define (same-variable? v1 v2)
- (and (variable? v1) (variable? v2) (eq? v1 v2)))
-
-(define (=number? exp num)
- (and (number? exp) (= exp num)))
-
-(define (make-sum a1 a2)
- (cond ((=number? a1 0) a2)
- ((=number? a2 0) a1)
- ((and (number? a1) (number? a2) (+ a1 a2)))
- (else (list '+ a1 a2))))
-(define (sum? x)
- (and (pair? x) (eq? (car x) '+)))
-(define (addend s) (cadr s))
-(define (augend s) (caddr s))
-
-(define (make-product m1 m2)
- (cond ((or (=number? m1 0) (=number? m2 0)) 0)
- ((=number? m1 1) m2)
- ((=number? m2 1) m1)
- ((and (number? m1) (number? m2)) (* m1 m2))
- (else (list '* m1 m2))))
-(define (product? x)
- (and (pair? x) (eq? (car x) '*)))
-(define (multiplier p) (cadr p))
-(define (multiplicand p) (caddr p))
-
-(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))))
- (else
- (error "Nieznany rodzaj wyrazenia -- DERIV" exp))))
- \ No newline at end of file