Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dobrý den,
- nestačilo by místo té vaší obludnosti například
- (defmethod simplify ((expr binary-expression))
- (if (and (typep (expr-1 expr) 'const)
- (typep (expr-2 expr) 'const))
- (parse (funcall (bin-expr-symbol expr)
- (value (expr-1 expr))
- (value (expr-2 expr)))))...)
- Jen by se pak musely mírně upravit zděděné metody, např.
- (defmethod simplify ((expr +-expr))
- (let ((result (call-next-method)))
- (if (typep result '+-expr)
- (let*
- ((expr-1 (slot-value result 'expr-1))
- (expr-2 (slot-value result 'expr-2)))
- (cond ((zero-const-p expr-1) expr-2)
- ((zero-const-p expr-2) expr-1)
- (t result)))
- result)))
- Příklad 8.17 byl měl umožnit pracovat s derivacemi stejně jako se součty, rozdíly, součiny, ... Zatím jsme s nimi pracovali jako s operací s výrazy, která se hned provede. My bychom ale chtěli, aby derivace byly výraz, se kterým se bude dát pracovat a který se vypočítá až při pokusu o zjednodušení pomocí simplify.
- Píšu vám 2 body za první část úkolů..
- S pozdravem
- Tomáš Kühr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement