perlquestion
le
Hi,<br>
<br>
it's been a long time since I posted my last question here, but I've started my studies of CS and don't find a lot of time anymore.<br>
<br>
Well, one of our first courses at the university is called
"Introduction to programming" where we do stuff in Modula-2 (yeah).
I always felt like "Hey how easy could this be done in Perl", but
I resisted to annotate my thoughts in a comment in the source
code :-)
<br>
<br>
One of the first examples we had to solve was the simplification
of a boolean expression. The input looks like this<br>
<code>
(abdc)(adc-b)
</code>
which aliases two boolean expressions. The terms inside the
expressions are ANDed together, and the two expressions are
ORed together (a negation is expressed with "-"), which means that the above string would be<br>
<code>
(a AND b AND d AND c) OR (a AND d AND c AND NOT b)
</code>
<br>
Now boolean algebra says that one can simplify this expression
if and only if the two partial expressions differ in just one
negated variable, so the solution for the above example would be:
<br>
<code>
(adc)
</code>
The specification for this example was rather strict:
<ul>
<li>Each variable inside an expression may only occur once
(the allowed characters were a..z, "(", ")" and "-")
<li>If the expression could be simplified do so, else print
something like "CANNOT BE SIMPLIFIED"
<li>If the input is wrong, print something like "WRONG INPUT"
<li>If the expression can be simplified, the solution was the
first partial expression minus the differing variable.
<li>The order of variables in the output string had to be the
same as the input string.
<li>If the two partial expressions are the same, the result is
the first partial expression.
</ul>
Ok, I finished this example (and it was correct :-) ), but then
I thought, just for fun, I do it in Perl, but now I just can't
find a really cool "perlish" solution for this.
<br>
<br>
So I want to know if you guys (and ladies of course) can give
a quick hack for this. (My Modula-2 programm was 202 lines long, pretty-formatted.)