emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: LIterate programming with calc (help)


From: Ypo
Subject: Re: LIterate programming with calc (help)
Date: Sat, 26 Nov 2022 21:16:47 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0

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" <e.fraga@ucl.ac.uk> 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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]