CatsAreCool
Joined 6 years ago
Joined 6 years ago
MathLingua, on the other hand, focuses on being precise and easy to read and write in its raw form.
Every definition has a ‘written:’ section describing how to express the math idea on paper and a ‘called:’ section describing how it is described when speaking.
Right now the ‘written:’ is used to render how a result looks, and in a similar way the ‘called:’ section can be used to convert a result into a transcript that a screen reader would read.
I haven’t yet been able to implement this feature though, but stay tuned for updates.
As such you can use whatever visual representation you want for operations and definitions.
For a particular math definition, you can also specify multiple different notations for the concept (in this case, MathLingua uses the first one when rendering results).
An example of this is the derivative of a function in the “A Detailed Example” section of the docs.
It is unique from LaTeX and theorem proving languages and has a different goal. See the documentation at www.mathlingua.org for more information.
This post is a follow-up to https://news.ycombinator.com/item?id=23960662 and many changes have been made to MathLingua since that time based on the feedback from that post.
In particular, since that time, I have added numerous improvements to the language to improve its usability, have drilled down on a particular use-case that I have documented more clearly, and have created a `mlg` command line tool to interact with the MathLingua language.
In particular, using `mlg check` one can check their MathLingua documents for errors, with `mlg document` one can create a dynamic static site of their documents suitable to be shared on GitHub pages, and with `mlg edit`, an in-browser IDE is available to edit your MathLingua documents with live previews, auto-complete, etc.
I really appreciate all of the feedback I received previously, and any and all feedback now is greatly appreciated.
Both perspectives are equally valid.
As a concrete example, suppose an alien cube suddenly appeared on Earth that, with a push of a button, would emit a pill.
It was discovered that the pill could cure half (but only half) of all known forms of cancer.
However, no matter how hard anyone tried, it was impossible to understand how the cube or the pill it created worked.
For those with cancer that took the pill and were cured, the cube was an amazing magical device.
For the people that took the pill and it didn't help them, the cube was worthless, since doctors couldn't tell them anything about why it didn't work, or what they could do to make it work.
For researchers it was frustrating because the cube showed some cancers are curable, but gave no reason why.
For the cancers it did cure, they didn't know why, and for those it didn't cure they also didn't know why.
Further it gave no insight into why only half were curable.
Was it because the cube was imperfect, or was that really the best that could be achieved?
For all intents and purposes, cancer research and treatment didn't really change. If you had cancer, you tried the magic pill. If it worked great. If it didn't, then doctor's were back to traditional techniques.
Thus from a knowledge perspective of one day curing all cancer, the cube didn't help, because the knowledge of how it worked couldn't be expanded to cure all cancer.
For someone cured by the cube, it was an amazing device, and nothing could change their mind.
For a cancer researcher, the cube was useless, and the only thing that could change their mind was if its mechanisms could be understood.
It is similar for math. As a tool, it is good enough to just know that the theorem is valid.
However, if you want to expand on that tool, develop more tools, or create different ways of looking at the problem, you need to understand why the theorem is true.
That is,
Theorem: "some text"
is the same as Theorem:
. "some text"
Thus it would be hard to distinguish a named theorem with one statement Theorem:
. "some name"
. "statement 1"
from an un-named statement with two statements: Theorem:
. "statement1"
. "statement2"
So for now I'm leaving the name in the metadata section, but I'm open to putting the title higher if I can come up with a nice way to do so.The dot space is used to mark arguments since some arguments span multiple lines but are connected. For example, in
Theorem:
. for: x
where: y
then: z
. 'some statement'
the 'for:where:then' group together is one argument, while the 'some statement' item is the second argument. The dot is needed to distinguish from Theorem:
for: x
where: y
then: z
'some statement'
where it is hard to tell where one argument stops and another starts.
It is still a work in progress, but does it help address some of the problems you see in learning mathematics? Any feedback is greatly appreciated. Thanks.