implement diff

This commit is contained in:
2026-06-21 19:49:19 +02:00
parent 3ce79efaa1
commit b6779a930c
+14
View File
@@ -0,0 +1,14 @@
(defn diff [expr var]
(cond
(symbol? expr) (if (= expr var) 1 0)
(number? expr) 0
(match expr
[op & args] (case op
'+ ['+ ;(map |(diff $ var) args)]
'* (let [[a b] args]
['+ ['* (diff a var) b]
['* a (diff b var)]])
(errorf "unknown op: %v" op)))))
(pp (diff '(+ (* x x) 3) 'x))
(pp (diff '(+ x 3) 'x))