[plt-scheme] proof checking: a subproblem
I'm a little surprised by the absence of any response to my query about
writing a program to check propositional proofs, but maybe I was asking
too much. Here is the heart of my earlier question:
How do I parse a textual representation of a logical formula like
"~(p \/ ~q) -> (q -> ~p /\ r)"
into a list form like
'(imp (not (or p q))
(imp q (and (not p) r))) ?
If it were fully parenthesized, I could hit it with "read". But there is
operator precedence here. I shouldn't have to write a tokenizer and
specialized parser from scratch, right? lex.ss/yacc.ss seem like
overkill. Macros? match.ss? I'm not asking for a full solution; please
just point me in the right direction. Thanks. --PR