diff options
Diffstat (limited to 'Semestr 2/racket/lista6/solution.bak')
-rw-r--r-- | Semestr 2/racket/lista6/solution.bak | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/Semestr 2/racket/lista6/solution.bak b/Semestr 2/racket/lista6/solution.bak deleted file mode 100644 index 0805991..0000000 --- a/Semestr 2/racket/lista6/solution.bak +++ /dev/null @@ -1,27 +0,0 @@ -#lang racket - -(provide (struct-out complex) parse eval) - -(struct complex (re im) #:transparent) - -(define value? - complex?) - -;; Ponizej znajduje sie interpreter zwyklych wyrazen arytmetycznych. -;; Zadanie to zmodyfikowac go tak, by dzialal z liczbami zespolonymi. - -(struct const (val) #:transparent) -(struct binop (op l r) #:transparent) - -(define (op->proc op) - (match op ['+ +] ['- -] ['* *] ['/ /])) - -(define (eval e) - (match e - [(const n) n] - [(binop op l r) ((op->proc op) (eval l) (eval r))])) - -(define (parse q) - (cond [(number? q) (const q)] - [(and (list? q) (eq? (length q) 3) (symbol? (first q))) - (binop (first q) (parse (second q)) (parse (third q)))]))
\ No newline at end of file |