I'm now readin SICP.Its not a bad book at all.
Its notation however sucks:
(+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6))
There is no way i could see which empty)( places contain which operators without reading entire string piece by piece.
This wouldn't work with larger strings.
Name:
Anonymous2008-12-23 14:34
I'm now readin SICP.Its not a bad book at all.
Its notation however sucks:
3*(2*4 + 3 + 5) + 10 - 7 + 6
There is no way i could see which empty)( places contain which operators without reading entire string piece by piece.
This wouldn't work with larger strings.
Name:
Anonymous2008-12-23 14:37
>>2
Why they don't use this format? Its far easier to read.
Name:
Anonymous2008-12-23 14:40
>>3
In what way? It requires mentally running through some arbitrary order of operations to find out what it does, and it also duplicates operators.
Name:
Anonymous2008-12-23 14:43
compare readibility:
(define (abs x)
(cond ((> x 0) x)
((= x 0) 0)
((< x 0) (- x))))
function abs(x){
if(x>0){return x}
if(x=0){return 0}
if(x<0){return -x}
}
Name:
Anonymous2008-12-23 14:46
MORE OPTIMIZED:
function abs(x){if(x<0){return -x}; return x}
Name:
Anonymous2008-12-23 14:49
>>4
It shows the operators.
Your version hides the operators.
When i debug code i want to see operators NOW.
I don't want to evaluate the ()(()()()( aids.
>>13
for extra speed use this version:
function absvalue(x,sign){
if(sign=='-'){x='-'+x}
if(sign=='+'){x='+'+x}
x=parseInt(x);
if(x>0){var result="Positive"}
if(x=0){var result="Zero"}
if(x<0){var result="Negative"}
switch(result){
case "Positive":
return x;break;
case "Zero":
return x;break;
case "Negative";
return negative(x);break;
}
OP has a valid point. There should be some way to "pretty print" the expression automatically so the tree structure is obvious. How can I do that in DrScheme (or any other scheme that doesn't suck)?
no one outside of computer science uses prefix notation. everyone uses infix or postfix notation in the real world.
Name:
Anonymous2008-12-24 4:10
Educationally, RPN calculators have the advantage that the user must understand the expression being calculated: it is not possible to simply copy the expression from paper into the machine and read off the answer without understanding. One must calculate from the middle of the expression, which makes life easier but only if the user understands what they are doing.
Name:
Anonymous2008-12-24 4:31
Educationally, prefix notation calculators have the advantage that the user must understand the expression being calculated: it is not possible to simply copy the expression from paper into the machine and read off the answer without understanding. One must start in the middle of the expression, reverse half of it, interleave the backwards into the forward half, and add parentheses in all the right places.
Name:
Anonymous2008-12-24 4:42
parsing prefix and infix notation requires slow as fuck recursive algorithms due to their complicated syntax. postfix notation is superior.
Name:
Anonymous2008-12-24 4:50
I want to see LISPfags using prefix calculators IRL and talking about how natural and efficient it is.
Name:
Anonymous2008-12-24 5:12
>>41
Each calculator would have a metal imprint of SICP over a Jerry Sussman portrait on its back.
>>33
One time some asshole gave me this same bullshit about prefix versus infix, claiming that children in civilized first-world nations (i.e., not the US) are taught to do arithmetic in prefix notation. He couldn't tell me where. He would also interrupt my and other people's conversations whenever somebody referred to something in imperial units by quickly converting to the metric equivalent and "correcting" us. He also kept switching whatever lab computer he happened to be using to Dvorak layout and sneered at others for being so inefficient as to use QWERTY. This was years ago before Asperger's diagnosis was all the rage. Others probably think you're a troll, but now I suspect you are that guy. Fuck you Jacob you stupid cunt.
Name:
Anonymous2008-12-24 5:42
>>40
I don't see why it wouldn't be. Each operator would introduce an opening paren before itself, and rather than the enter key a normal calculator has, there would be a close paren. When all parens were closed, the expression would be evaluated.
Name:
Anonymous2008-12-24 5:46
>>12
bad style, use:
int
abs(int i)
{
switch(i) {
...
case -1:
return 1;
break;
case 0:
return 0;
break;
case 1:
return 1;
break;
...
default:
break;
}
}
>>54
Port it to windows.Its should be easy(python is cross-platform)
Name:
Anonymous2008-12-24 6:43
Prefix is a prefix (polish notation) command line calculator written in python. Prefix 1.5.1 fixes issues with the - character being used as the subtraction operator. prefix often gets confused and thinks it's an operator. The supported subtraction character is now the _ (underscore) character though if the - character was working before it 1.5.1 will be backwards compatible with 1.5.
>>62
FURTHER FURTHER OPTIMIZED:
Each calculator would be Julie Sussman.
Name:
Anonymous2008-12-24 8:34
>>63
Reduces functionality. >>62
PROPER OPTIMIZATION:
Each calculator would have a metal imprint of naked Julie Sussman on its back.
Name:
Anonymous2008-12-24 11:03
I'm invented a new lisp dialect!!!!!!!
It's called wicky scheme especialy disegened as a lightweight DSL for mediawiki on web 2.0 -- I blogged about how I fixed the problem of scheme which was unspecified order by specifying evaluation order! I am so great.