# [LON-CAPA-dev] Re: [LON-CAPA-users] exponent in formula response

**Peter Riegler
**
lon-capa-dev@mail.lon-capa.org

*Wed, 03 Feb 2010 16:48:53 +0100*

Hi,
Gerd Kortemeyer wrote:
>* While I have not tried it, I suspect that 1/2*10.0^4 would behave differently, since it does not exactly match any of the patterns above.
*
I have tried this. The behavior is as suspected.
The very reason for the "malfunction" under discussion is the line
# 3x10^8 -> 3&8; 3*10^-8 -> 3&-8
$expression=~s/(\d+)(?:x|\*)10(?:\^|\*\*)([\+\-]*\d+)/$1\&\($2\)/gsi;
It translates e.g. 1/2*10^2 into 1/2&2 which will eventually become
1/2e2. In other words 500 becomes 1/200.
Maybe we can fix this with something like
$expression=~s/(\d+/\d+)(?:x|\*)10(?:\^|\*\*)([\+\-]*\d+)/$1*1\&\($2\)/gsi;
$expression=~s/(\d+)(?:x|\*)10(?:\^|\*\*)([\+\-]*\d+)/$1\&\($2\)/gsi;
or even
$expression=~s/(\d+)(?:x|\*)10(?:\^|\*\*)([\+\-]*\d+)/$1*1\&\($2\)/gsi;
In general I feel uneasy about what we are doing for implicit
multiplication. In the parlance of theoretical computer science: Are we
really dealing with a type-3 language here or is it a type-2 language?
If the latter is true we can't fully solve the issue with finite
automata/regexes but have to use a parser/stack machine.
Maybe someone can help to think all this through.
Peter