Just in case you find this package interesting. Except some problems with units conversion, it's nice: https://github.com/sulami/literate-calc-mode.el > This is a literate calc file. > > Lines without "=" are ignored. > > All results starting with "=>" are an overlay generated by > literate-calc-mode. That means they are displayed in Emacs, but not > actually in the buffer/file contents. > > We can calculate a value like so: > > = 2 + 2 => 4 > > If there is any string on the left hand side, it becomes a bound > variable. > > Pi = 3.14159 => Pi: 3.14159 > > We can use this variable below the definiton. > > Tau = Pi * 2 => Tau: 6.28318 > > Results are calculated using Emacs' own calc, so you can use formulas > as well. > > = round(Pi, 2) => 3.14 > > Later bindings shadow earlier ones: > > Pi = 3 => Pi: 3 > > = Pi => 3 > > Variable names can have spaces as well: > > Monthly Expenses = 500 => Monthly Expenses: 500 > > Monthly Income = 1000 => Monthly Income: 1000 > > Annual Savings = 12 * (Monthly Income - Monthly Expenses) => Annual Savings: 6000 > > All values are recalculated on every update in a spreadsheet-like > fashion. > > Calc also has a lot of advanced features, like arrays: > > Numbers = [1 2 3] => Numbers: [1, 2, 3] > > = 3 Numbers => [3, 6, 9] > "Fraga, Eric" writes: > > >/> I guess that the main problem is that calc is tightly integrated with/ > >/> interactive commands. Maybe ob-calc could be extended to somehow/ > >/> indicate the commands to be executed in addition to inputting stack/ > >/> entries./ > >/>/ > >/> Not sure if there is much interest in such feature though./ > > > >/Thinking out loud, what would be better, but I have no idea how feasible/ > >/it would be, would be to have ob-calc make use of the embedded calc/ > >/functionality and syntax, so that you could write something like this:/ > > > >/#+begin_src calc/ > >/a := 300 m/ > >/b := 2 a =>/ > >/#+end_src/ > > > >/which would output the result of any line with => on it./ > > I am CCing Tom Gillespie, the maintainer of ob-calc. Maybe he has > something to say.