I enjoy common lisp, but sometimes it is really painful to input simple math expressions like
a(8b^2+1)+4bc(4b^2+1)
(Sure I can convert this, but it is kind of slow, I write (+ () ()) first, and then in each bracket I put (* () ())...)
I'm wondering if anyone here knows a better way to input this. I was thinking about writing a math macro, where
(math “a(8b^2+1)+4bc(4b^2+1)”)
expands to
(+ (* a (1+ (* 8 b b))) (* 4 b c (1+ (* 4 b b))))
but parsing is a problem for variables whose names are long.
Anybody has better suggestions?
There are reader macros for this purpose.
See: http://www.cliki.net/infix
For example:
CL-USER 17 > '#I(a*(8*b^^2+1)+ 4*b*c*(4*b^^2+1) )
(+ (* A (+ (* 8 (EXPT B 2)) 1)) (* 4 B C (+ (* 4 (EXPT B 2)) 1)))
'
is the usual quote. #I( some-infix-expression )
is the reader macro.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With