soegaard / racket-cas

Simple computer algebra system
60 stars 10 forks source link

What is the relationship with your other CAS project, bracket? Are you still working on any of them? #1

Closed spelufo closed 4 years ago

spelufo commented 9 years ago

Hi, I want to experiment in making an interface for a CAS. I'm thinking about the manipulation of expressions being an active, exploratory process. I'm only starting out with racket (seen the SICP videos, and done a little clojure) but it is clearly well suited for this.

What is the status of your two CAS projects? Is there a major difference in their objectives? Does one depend on the other?

Thanks, great stuff!

soegaard commented 9 years ago

Hi Santiago,

The bracket project was my attempt to write a GUI for a CAS. The algebra core in bracket follows Cohen's two books "Computer Algebra and Symbolic Computation" and "Computer Algorithms and Symbolic Computations". The engine works fine for what I had in mind. The GUI it self was meant to work like TI NSpire, but the GUI was never finished (I ended up writing the library racket/matrix instead). You can see the beginnings here:

https://github.com/soegaard/bracket/blob/master/gui/racket-cas.rkt

In short: The goal of the bracket project was to write a CAS with a nice graphical frontend, but the frontend was never finished.

The racket-cas project was an experiment: How can the core be written in a readable way? If you study the code, you will see that the source is more readable than the bracket one.

To see how racket-cas works, you can study one of the initial commits: https://github.com/soegaard/racket-cas/blob/3480073cfe2a324faf8c954dfec8c4da61a498d8/racket-cas.rkt

As racket-cas was fun to hack on, it grew beyound what I initially planned. Today the racket-cas project is meant to be used as a library for other Racket programs.

Since racket-cas was written last bracket does not depend on it.

I am happy to accept bug reports and/or patches to both bracket and racket-cas.

Note: Bracket contains an implementation of the graphical primitives of Mathematica. https://github.com/soegaard/bracket/tree/master/graphics

Feel free to use what you need for your project.

Happy hacking, Jens Axel

2014-12-29 12:11 GMT+01:00 Santiago Pelufo notifications@github.com:

Hi, I want to experiment in making an interface for a CAS. I'm thinking about the manipulation of expressions being an active, exploratory process. I'm only starting out with racket (seen the SICP videos, and done a little clojure) but it is clearly well suited for this.

What is the status of your two CAS projects? Is there a major difference in their objectives? Does one depend on the other?

Thanks, great stuff!

— Reply to this email directly or view it on GitHub https://github.com/soegaard/racket-cas/issues/1.

Jens Axel Søgaard

spelufo commented 9 years ago

Thank you very much for such a clear overview. I'll investigate further and let you know if I come up with something.