More importantly, you can often add extra parentheses around expressions without affecting their meanings. In Scheme, the parentheses are not just there to clarify the association of operators. In Scheme, parentheses are not optional, and putting extra parentheses around things changes their meaning . For example, the expression foo is a variable reference, whose effect is to fetch the value of the variable foo . In general, you have to know where parentheses are needed and where they are not, which requires understanding Scheme's rules.
Some parentheses indicate procedure calls, while others are just delimiters of special forms.
The other thing to know about parentheses is that they have to match. For every opening parenthesis there has to be a closing parenthesis, and of course it must be in the right place. Go to the first , previous , next , last section, table of contents .