# [plt-scheme] lisp sans parentheses

>* Hi,
*>* <SNIP>
*>* 2. We use right associative infix operator notation -
*>* a * b + c translates to (* a (+ b c)) in
*>* lisp.
*>* </SNIP>
*>* This clearly violates mathematical convention. Is this
*>* a typo, or is it intentional?
*>*
*>* Regards,
*>* Nusret
*
Totally agree. Its intentional and I chose that example to
illustrate that it doesn't agree completely with mathematical
convention and only the infix part is respected.
I program a lot in C/C++ and I'm quite paranoid about
parentheses for mathematical and logical expressions.
Maybe just me, but I can never remember precedence rules
confidently enough so I end up writing
(a > b) || (c > d)
always instead of
a > b || c > d
just so I'm saved by habit in case I get the wrong
precedence. Precedence rules complicate the parser with
relatively little extra benefit beyond the infix notation.
A consistent grouping rule for infix operators is, imho,
easier to use when programming.
-Srikumar