# Doing More Than One Operation¶

What if you want to write 3 + 4 * 5 in ClojureScript? A function box diagram of this expression looks like this:

There are two ways to translate an arithmetic expression from its normal infix (operator between the operands) notation to ClojureScript’s prefix (operator before the operands) notation: the logical, abstract thinking method and the mechanical, no-thinking method.

## Expressions: The Abstract Thinking Method¶

### What’s Really Going On?¶

As you saw from the function box diagram, 3 + 4 * 5 means to add 3 to the result of multiplying 4 times 5. (That’s the order because multiplication is more important than division. This is referred to as precedence of operations.)

To add 3 to something in ClojureScript, you write:

(+ 3 something)


That something is the result of multiplying 4 times 5, which you write as (* 4 5). Putting it together, you get:

(+ 3 (* 4 5))


Notice that the order of operations is inverted—the last operation you do in infix notation (addition) becomes the first prefix operation.

Here’s another example: 3 - 2 * 4 / 5. Thinking it through in order of operations:

Keeping in mind that the last shall be first, and the first shall be last, the answer is:

(- 3 (/ (* 2 4) 5))


## Expressions: The Mechanical Method¶

Let’s return to the expression 3 + 4 * 5. Fully parenthesize the expression, which gives you (3 + (4 * 5)). Then switch the first operand and the operator within each set of parentheses.

That gives you this result:

(+ 3 (* 4 5))


As before, the order of operations is inverted; the last operation you do in infix notation (the addition) becomes the first prefix operation.

Here is the other example: 3 - 2 * 4 / 5. Using what you know about order of operations and fully parenthesizing the expression, you apply these steps:

(3 - ((2 * 4) / 5))     ; fully parenthesize
(- 3 ((2 * 4) / 5))     ; switch 3 and minus sign
(- 3 ((* 2 4) / 5))     ; switch 2 and multiplication symbol
(- 3 (/ (* 2 4) 5))     ; switch (* 2 4) and division symbol


No, I have not pulled a fast one on you with that last step. I really am following the rule: I switched the operator (the division) with the first operand of the division, which, in this case, was (* 2 4).

Now it’s your turn to give it a try on the next page.

Next Section - Exercises in Arithmetic