14 comments

[ 2.8 ms ] story [ 42.5 ms ] thread
Does it support outputting in LaTeX?
No, however that is a great idea I had not thought of before that I will add to the roadmap. In the meantime, if you need a somewhat-nicer looking output format, I have a basic web interface setup at http://tt-web.bwel.ch/
Might be worth supporting a few different table markup formats. Pandoc has some common ones in it's documentation.

http://pandoc.org/MANUAL.html#tables

Really interesting project though, I'll have to bookmark that web interface.

Thank you, I appreciate you taking the time to check out the project and point me towards pandoc. It looks like a great starting point for expanding into new output formats.
Seems like that might be better implemented as a different library.
Hi, where can I see a list of all the operators that are supported? I tried "A nor B" on the web interface to try to make it break and was surprised that it worked :)
IMHO [[https://en.wikipedia.org/wiki/S-expression][Symbolic Expressions]] are... infinitely better.

Example: '(iff (not (and (P 1) (P 2))) (or (not (P 1)) (not (P 2))) )

It actually would not be too hard to add a separate parser for S-expressions; this would allow the existing "backend" tooling (converting to postfix, generating trees, filling tables, etc.) to be used unchanged. I actually think this would be a really powerful feature to add; thanks for the idea!
A Lisp might be a better language choice for that use case than Python. Nothing against Lisps or Python.
I wrote this in a few lines of TXR Lisp as just an answer to a SO question:

http://stackoverflow.com/a/34377302/1250772

All code is in the answer. Parsing the infix, and generating the "pretty" truth table over all variables.

An easy-to use declarative mechanism is there for defining operators on multiple precedence levels with different arities. (All you do is instantiate an object with new for each supported operator). Operators either have names that denote existing functions in TXR Lisp, or for any that are not existing Boolean functions, you just define the function (like I did for ->).

What does "tt" stand for?