Prefix Notation
1
Name:
Anonymous
2007-11-08 19:06
I could do with some prefix notation practice (I have not reached Satori).
To this end, I'd be terribly obliged if you could post some nested mathematical expressions with nested brackets and only simple (+ - * /) operators, so I can practice converting them.
I'd also be obliged if you could tell me if I'm right/advise me where I'm going wrong.
An example;
7(8 x 9(10 x 3(8 + 4)))
(* 7 (* 8 (* 9 (* 10 (* 3 (+ 8 4 ) ) ) ) ) )
Am I right? Wrong? Advice?
2
Name:
Anonymous
2007-11-08 19:35
>>1
You're semantically right, but both your infix and prefix notation versions are ludicrous.
7 * 8 * 9 * 10 * 3 * (8 + 4) = (* 7 8 9 10 3 (+ 8 4))
3
Name:
Anonymous
2007-11-08 19:40
(+ 4 1 ( * 3 7 ) (/ 2 4))
4
Name:
Anonymous
2007-11-08 19:46
(/ (+ 3 3 5) (- (* 2 5) (+ 4 6)))
5
Name:
Anonymous
2007-11-08 19:58
>>2
So, technically right, just need to clean it up? Thank you very much :D
A supportive IRC-er gave me a monster one to solve - namely
(6(9-8*2(4-5)+7-4(2*3)+4-8))/(5(3(7-3)(2+1)-8+9-4))
With my shitty, uncleaned-up code, I got
(* 6 (+ (- 9 (+ (* 8 2 (- 4 5 ) ) 7 (* (- 4 (* 2 3 ) ) ) 4 (- 8 ) ) ) ) (/ (* 5 (* 3 (+ (- 7 3 ) (+ 2 1 ) (- 8 ) 9 (- 4 ) ) ) ) ) )
Let me just clean it up and I should be able to figure out if I'm right - the REPL says the answer is 12/5
6
Name:
Anonymous
2007-11-08 20:02
) ) ) ) ) )
) ) ) ) ) )
) ) ) ) ) )
) ) ) ) ) )
) ) ) ) ) )
) ) ) ) ) )
7
Name:
Anonymous
2007-11-08 20:16
(+ 4 1 ( * 3 7 ) (/ 2 4))
4 + 1(3 x 7)(2 / 4)
4 + (3 x 7)(2 / 4)
Sorry if it isn't clean, but this is the easiest format for me to read.
Solution is; 4 + 21 x 1/2 = 14.5(?)
(/ (+ 3 3 5) (- (* 2 5) (+ 4 6)))
(3 + 3 + 5)
/
(2 * 5) (4 + 6)
11 / 100 (Eleven hundredths)
8
Name:
Anonymous
2007-11-08 20:17
>>6
Thanks, I'll need those.
9
Name:
Anonymous
2007-11-08 20:22
Is this thread a joke?
10
Name:
Anonymous
2007-11-08 20:27
11
Name:
Anonymous
2007-11-08 20:28
>>10
Specific examples and corrections? :(
>>9
No.
12
Name:
Anonymous
2007-11-08 20:48
>>11
(+ 4 1 (* 3 7) (/ 2 4)) = 4+1+3*7+2/4 = 5+21+1/2
(/ (+ 3 3 5) (- (* 2 5) (+ 4 6))) = 11 / (10 - 10) = OH SHI-
13
Name:
Anonymous
2007-11-08 20:51
So, why are you doing this? How often will you be translating over-complex badly notated infix expressions to prefix notation? My guess is never.
14
Name:
Anonymous
2007-11-08 20:54
>>13
When not using toy programming languages, they like to come up with toy logic/mathematic challenges.
15
Name:
Anonymous
2007-11-08 21:14
>>14
So you think the problem that he's not spending enough time coding?
16
Name:
Anonymous
2007-11-08 21:39
can I say something? the prefix notation is suprisingly cleaner
17
Name:
Anonymous
2007-11-08 22:13
>>16
That's often the case. When you're summing (or whatever) a bunch of things, prefix notation wins hard (+ 1 2 3 ... n) is really compact. On the other hand, complex formulae often take way too much typing (* 440 (expt 2 (/ 7 12))) versus 440*2^(7/12). Trade-off either way.
18
Name:
Anonymous
2007-11-09 4:42
ummmmm,
just use the super easy stack based infix<->prefix algorithm.
It's fukin cool as beans.
19
Name:
Anonymous
2007-11-09 8:45
>>12
Lol'd @ the 2nd
Also, whoever set me the impossible divide by 0 one is a bastard.
20
Name:
Anonymous
2007-11-09 9:14
>>5
(6(9-8*2(4-5)+7-4(2*3)+4-8))/(5(3(7-3)(2+1)-8+9-4))
turns to
(/
(* 6
(+ 9 (* 2 -8 (- 4 5)) 7 -4 (* 2 3) 4 -8))
(* 5
(+ (* 3 (- 7 3) (+ 2 1)) -8 9 -4)))
not so bad. Also, I'd insist it's cleaner.
21
Name:
Anonymous
2007-11-09 9:40
(1-9+(7/1-(5+6*(2/(7/6+3)))-((5+6-4/4*((((1*6)-1*7-(3+((6*4)+(2/1/3)*7*8-1+(8*8+4))/4/5+1))/8/7)-9+(4*9*8)*8)/(5/4*((6/8/4)/(8+(6-1)/6+2*(4-6+((2*9)/(3-1/9+4/4)/(3+9/6-9)+7*5)-(1*(6*9*8/7+4)*6)-9))*9/(2-4)*7-(6-3/7-3*1)))-9)+4+(8/5+6+(3-9*(((7*8*3*4*(2*3+4+5+(7+4/8-8-5*6-7)-(6/4-8*4)))/2+7)+4+7/(9+4)-(1/(1/5*(6-7+5/5*4/8)/8/7)))+8-9/7)-(4+(1+4/(6-5)*4)/3-(((5*(7-(3+8/5)))/1-(2/3+2+3/((4+2+3)/7*(2*4)-3+(1/6-3)*3*(7+4*8/4*6+7))+(9+3-3-(2-5-1/1-1*5)-1*(1-3+4/2+5)))-1)-(2*((2+8-8*3-7)+2+6)-3-(((8+4-2-5-7)+(1-6-2*3))*(1+2)/((2/6*6)/3+2-8/(8*2/4-5)+(4-9*1*3))-3+1/(9/9/(3+3-8*2/3)/2))*(2/2*8-3+(2*2+(1*7/8/1+4*5)*5))+(5/5/4-5))-9-5-(1/(((5*9+4+3+8+5+9)/8+1-9+9+3)-((8/3+1-4*8+3)*2*9+6)+5+((5+4+6-6-9+9-7)+2*(8*5*5*7)*3+7+5))/2+9/(((4*7*8)*1)-3-7*(6/(1+9*2)+(1+8*5*4)*(2-4/3-8-7)/(4+7*8)-(1+5-6*9*3+7-9)))/1)+6*9)-(4-6+7+(8-((3-3+(1*1*3-8/7)/9)+8/((5*2*1-9/8*5)/6-5-2+(7+7/5*8*5*2+2)/(7*5/6-6)-(8*1+2/8)))*3+(4*6-6-(1-6/4-9-5))/6)+(((8+(3+9+8+7+9)-(5/1))-(8*1)-5)-(8/7)/(((8/7*3/3/7/1+9)/2+1/2*9)*6/6*(4-4-3-(1*3/8+6/4))/2*9))*4+2)*1*((2/5)*6/((7*8)/4)/1))+(4-((3+9+7/6)+(5+2*7+((6*8/4+(7*7-3*1/2/1/3)-(7*5/2+9*6+5+2))-8)/9*9-6)+6-8-1)+1-7-5*7))/9-8*6*(1*2/8+4*(9+(1*8+(4+7/9*(1*8+3*2/2-9)-3)+(8-7/6-6+(1/((1+9)-8/9-8*3-9)/((5/2)*(5/2)*6+(4/3)-4+6)-(6-1)+(3-4/7/2)-((6*2-4/6+9+3/5)/2)+7)/1)-1)*7/4-5*8)-(1/3*(6+((4/(2+6*3/1+(3+8-2/6*2*4+5)-3+4)-(2*5*6-9*1-5)/8)/4*9+(8/8*(9+(6*5)+9/(5+9-9*6/1/6*1)+(8*2+1-9+8)*6*2)-8*5+(1*(8/1-8*3-4+2/6)/(6*9/2*7-5-9*4)*9))-4-((9*5+1*(1*7+9/1)/3)+4/3-(9-5/(5-9)-(5-1)*9-(7-8-7-2)-8)/(5-(7-2/7))/4)*(9*(1+8*(2+9)*7/9)-((7*3+3/1/5-4/3)/3/1*7+7)/((2/4)+4/7*(3/8/9/4*5-3)-9+5*(6+5+2-5-6+4))*((2-3*2/9-2+9)-(9+4-5/5)*1)*4*8))+4+((((3*4)*6/6*5+5-6)/(5*(7*7+6+1*7*1)*7+2+(4+9+3-9))*(4+3*3+6+5+6)-(8*4*1+5-(5*1/9/7+5+7)/1)+((6+9/1-7*3+1*3)-4/(8/8/2-3*6*4)+6/5+8)*6-3)*(5-1+(1+2+5)/9)+(9-1+((6/5+6/1/3)+4-9+6+2/(4+8+1+9/5+8/5))))/8+((8/8/4+((1-6/8-1)/5/3))/3+8-8/9+1)+4)/9*(5/7)*5)))+(4-2-2-(4/7-7/2*(5*(((3-2)*8+2-9)+4-1*9*(2/6-8))/8*3)+2*(((7*6*(4*1*(4-6-(9/8+3*2-3*2+2))-7/(7/(3/8+4-3+1*8+4)-5))+(((3+6*5)*9+(3/5-3+1+7)+9/(7/3/9)-6)/9*(6+1-6)-((8+6+7/9*1*3)*2-(8-6-5-2+7)/6+(9*1/4+1/3))/1)/4+(1*(2/7/(2+8/6+4-8/6))/((2-1*9)/1-(2+5))/(1/(1-3*8)-8+(7+3)+1)-5))/(5-3+5+5)/(9*(5+9-(6-1-3)+8/4-7/6))*7-3+4+(7/5*6*8/4*((7*5+1+(7+9+9/5*8-5*2))+6+(7/8/8+(7+5/4+7)/5)+8)+(2-((4+6/5)-(6/7-9*5/2)*8)+2*4)))+3+6-(7*(2*9*2+7+((6+4-(2/5-7-1/1+5)/1/9-1)*7-8-(2-4*(7+3-1*6+6*8/2)+(5*1)+8/(8/4/9*3)-(5/3/1/1/9))/1-8))*(5/8+5*9)/4*5/5*2)/9*(8+2/6-((6-6/((9/3)+8-7+(2/4+8-8/2+5)-8-(9+1+7*4)))+(7+8/(3*2*6-(9+8*7)-8*(8+1/4-5)/1)+4))-1))))/5/9)/5+3*(2*3+(5+(1-9/3-3*8)+6/6)-(3/5/2-((((1/8+3/6+(((8*8/8/2-5/6)/(3/3*7*2*2/4)+4-9-5+3/6)*8*(6/9-2)))+6)*5)/2)*((5+4-8*(1/6/7/7-6+((1*4+9)+((6-6/3+8+6)*6-4+5+5+(6*(5*3+6-8+3-1/3)/7-(1-2+2*1-8-5)+9))-(2+6+(3+7+9)*8+(8-4-(8*9*6)/(2/1-2/2*3)/(7+9*9-6-6)-2)/5)+5+2/3*6))/2)/3*9/((3-7-9-(((5*6-8)+5/4-(2/(1-7+5)/(1*1+3*6/2*7-5)-5+(7+2+5)-9/1))*3)*5)+7-2*1)-(8-7*6-7/2/6))/4)*3*7))+8-(4/(7*2-((9-4)*(8+4*8/4)-1-(6-3-1))*4+4/6*(8*1+1-9+(1/1-3-6)))-(7+(9/(5-(5/((2*1)/6+1-4+5/6)/5+(1/8/5-8/2)-5*8)/8-(8+3)/7/(8*5-(4*((9-9-2/((5*4-4)*(2/9/7-3-6+9*9)+3)+((8-6-1)-7+6/1*(3+7+5*7*4+8+2)+7)+5)*3*(2*6-4-8/4-((7+9*2*2+5*2*3)*(4*2*1*6)/7+4-2-8/7))/(8*(1-8+2/6/9+8*4)-1+2-(4/(1-5)*8)+5*2)*(6/((7-9)/(9*7+8*8)*(9*9+2/6-5-9)*7/1+(3*5-4-6-2)*1)+(1/3-5*6)-6+7*(7/6-(2*6-9*4*2+2-1)*8/(6*8-2+1-8-8)))*(((7+1-5-9/3+9)/6-6+(2*3+1+5*5)/(2-9+8))/(2*(8*1)+(8/4-2*2-1-4)+(9-5*3*6*3/8/1)/5/6))))-((7-(4-((9*7+7*8/2/1-4)/2+5*(2+8/7*9-8)*3/8)/7*5/(3/(1*7-6/1/6))+5)+((9*3+3+3+9-(3/2+6*3/9))+9*(4+(2-3-3)-9*4+(4/9-7)+2-(9+4-6/3-5))-5-3)/4)/(1/9-3-2-1-2)*2)*5/6-6)))/6*5-1-9/8)-(7*8*(3*8-4/6+7*4-((((2-7+(9+2)/((5*1*(4/7-3+8+8)+(6+7*5-7)*7/2-2)/(6-6-(9+2)/(3-5*7-2-8))/((3+6+8*3)-(7+5*1-5-6)-4/5/(7-3*9*2+5)/1-(2/2))+(2*(6+3-1*4)*4-1-7-1)*(7+(1*2-6)-5*(7-3*4*7))/(5/3-(1+4)+(7/7*4-8/3*6)/1))*(9+2*3+(5+2)+5)*5-8)+9/4+9*(7*1*9*((6/(5*1*6)-5-2)-(7+3*2)/5-((2-4)*9/5+(7/2/9-3*2)-9/(8+9*5-5*7)-(4*4))-7-(6+5-1+(6/9+7*6+4+7/2))+(6+7))*(7-7+3/8/4+3)*4))*2/(3+((4-((3/6-7+2)-3+3*7))+9+7-1-1)/7*3))/6*3+8+(6*(8-8))*6*4))+(9-7)*5+4)*7+8)-(4+(6/6*5/9-5-(3*(((1+(4/7-((6/5-(6*7+8*3+1*6/2)*9*(5-9/4*2*7/1*7)+3+(9-7-9-3-4*1))/((5/5*8/8*3+9/4)/(7-6-7/1+1/9/9)-(7+3+3*3*4+7)*4+5)/9*8/(6/(8/8+6+2+9*5)))-(4*((2*5)-8*(1*9-1*3)-3/5-7)+8+((8/3*5/3)+2-3*3)*7/((2/5)-2-(1/7+1-7)*(3-6)+5*(2+5/5)*7)*1)*8+6-6)+8-3+2/1)+2+2/(1/(2+(3+1-2+((5+3+5+3*2*7+6)-4*3+(3+2/5+1)*4)*(2-3/(1-5-3*4/4+8-2)))/(4*5)+(8-3-4*5*9-(3-(6/2+3/9*3)+5)/(5+1*(6*3)-1*(3/6/6-6-8)))+(3*((3-8+3)+6/(9+4-2*8+5)+6-(3+3+3+1))*(5*2*9-1/(5/5/1*4)/(8-6)*7)/9)*1)+(2*2)+((((1+1-1)/5*(1*3+1-1/3-9)/5*(3/1*6-1*4+7/9))*1/8+7)+((4-4+5)+3*5-((3*6+6*5/6+3+7)+(1*3/2/6)+(9/1-2/9-8*9)-6-7-8*(9+6*7)))/5+4-(4/2+7-((9+9-4-5-5/2*3)/1*4-1+2)+8)*5*2)+(6/7)-3)/5)-(2*3*8+((1+5-2+3*3*((6-7-(7/6+9*6)+(2-3-2+3)*6/9*(2/4/4))/8/9+((5+3*8)-1*7*1/(3*1-8)+4-2)-((7+8)-(2/4-1*7/1*5))))-((8+7)/(5-(3-(3+8/4/9))+8-(5-3+1)*6)*5*4/2*4-2))-(((3+6-4/(1+2+(8/7*6-2-2)-9-8-6/9)/8-9/1)*(6+((6-9)-5*2-1+(8/8+6*7*2*8)/3)+((3-5*5/9/4/8+4)+9*(6*6)-7+7+5+9)/3*4*6)/2+4)-(((8+7/9+5+2-6)/((1/2)*(1*1+9-2-1*2+1)/5+(8-7-3/3*7/8*2)+5)*6/3-3+(2-(5+8+9*5/7)/(4/7)/4-3/(4/8*2)))*(6-((9-9-6/7/6-2)*2*3)-6)*5/(5/7+6*(1/2-(8*6-2/5)/(2/1/6+1*2/2)*3)/4))-5-(5*1*(((8+6/4)*7/8+4)*8+((6*7+2+9+4/1)-(4-6/5+1-6-9))*7-9-(6/3-3)*3)*8-(3-9/4+2)*6/4)/(2/4-2*(1-9+(4+6+(9*1+5+8)+3*8)-7)/9)*4)-7-(((((2-6+8-4*8*2*3)/(9-4*6-6/4*6-8)-(2+4+8-2+9+2+8)/7-2/(7-4))/3+2*(4+(5-6)+9+6))*6-3)*3+6))*8)-8-(2-4-9/(7+8*(9-8+(9+3+2-9*(1+8*5*4/9)/9*4)+7/((7-7)-((5/8)-2-2/(2-4-3+8-3/9))-(9*9/(8/(6/4-2/6))+7/((3*5+2)+8+(5+7)*(9-3-4-4+3+7*6))))))-6/5/4)/1*7+9)-(6-(3*6)/2*7))*1-1/(9/4+9-7/3/3))
22
Name:
Anonymous
2007-11-09 14:54
23
Name:
Anonymous
2007-11-10 15:42
>>21
Hot.
>>20
pretty-printing is fucking shit.
24
Name:
Anonymous
2007-11-10 17:36
I'M THE SUSSMAN
SON OF A BITCH ABELSON
ABELSON IS PIG
DO YOU WANT PYTHON?
DO YOU WANT FORCED INDENTATION OF THE CODE?
ABELSON IS PIG DISGUSTING
GUIDO VAN ROSSUM IS A MURDERER
FUCKING ABELSON
I'M THE SUSSMAN
SON OF A BITCH ABELSON
ABELSON IS PIG
DO YOU WANT PYTHON?
DO YOU WANT FORCED INDENTATION OF THE CODE?
ABELSON IS PIG DISGUSTING
GUIDO VAN ROSSUM IS A MURDERER
FUCKING ABELSON
I'M THE SUSSMAN
SON OF A BITCH ABELSON
ABELSON IS PIG
DO YOU WANT PYTHON?
DO YOU WANT FORCED INDENTATION OF THE CODE?
ABELSON IS PIG DISGUSTING
GUIDO VAN ROSSUM IS A MURDERER
FUCKING ABELSON
25
Name:
Anonymous
2010-11-14 11:15