### Significant Whitespace In Expressions

January 8th, 2011
[html]
Order of operations can conflict with what an expression looks like it should mean. For example, the expression `a * b+c` looks like it means `a*(b+c)` but technically (and in most computer languages) means `(a*b)+c`. This seems analagous to the reasoning behind python using indentation instead of braces. The C code:
```  if (x)
if (y)
z();
else
w();
```
looks like it should mean
```  if (x) {
if (y) {
z();
}
}
else {
w();
}
```
but actually means
```  if (x) {
if (y) {
z();
}
else {
w();
}
}
```
Python deals with this by treating the whitespace as significant, so:
```  if x:
if y:
z()
else:
w()
```
and
```  if x:
if y:
z()
else:
w()
```
both mean what they look like they should mean.

Some examples of how I would propose we do things instead:

```  write                 to mean
-----                 -------
a+b                   a+b
a + b*c               a+(b*c)
a * b+c               a*(b+c)
a+b * c+d             (a+b)*(c+d)
a+b - c+d             (a+b)-(c+d)
a+b  *  c+d - e+f     (a+b) * ((c+d) - (e+f))
a  *  c + d + e       a*(c+d+e)
a + b                 a+b, maybe yields warning
a-b+c                 error
a*b+c                 error
```
Algorithm:
```for each number of spaces 0 on up:
group any terms with that number of internal
```

### Recent posts on blogs I like:

#### Some reasons to work on productivity and velocity

A common topic of discussion among my close friends is where the bottlenecks are in our productivity and how we can execute more quickly. This is very different from what I see in my extended social circles, where people commonly say that velocity doesn…

via Posts on Dan Luu October 15, 2021

#### EDT with updating double counts

I recently got confused thinking about the following case: Calculator bet: I am offered the opportunity to bet on a mathematical statement X to which I initially assign 50% probability (perhaps X = 139926 is a quadratic residue modulo 314159). I have acce…

via The sideways view October 12, 2021

#### Meditations on newborns

[Content: death.]I wrote most of this a couple of months ago when Nora was a newborn, but the first few months are not that conducive to finishing blog posts. New babies put you into a liminal period, both in your own experience and in how others treat yo…

via The whole sky October 3, 2021