# Default arguments in casual speech

The other day I was planning out bike route that I'll need to take periodically. I need to get from NW 12th and Marshall to NE 60th and Glisan in Portland, Oregon. As you can see below, I have lots of options.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/e1be17de7d46828f85bd98e4002651fc99280f43e3ace3dd.png)

http://portlandbikemap.com/

I am pretty safety conscious, so I tend to only use the purple, double blue, and double green paths.

Purple is for off road paths that don't have any cars nearby. I'm very happy on purple paths. Here are some examples:

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/45fecdc0a6b8fee1bb8aaa79509e8275a80709c78f30a5a2.png)

Double blue, well double blue can mean different things. Sometimes they are protected from cars with some sort of barrier in a way that makes me feel safe and comfortable. Sometimes they are wide enough and amongst traffic that is low enough speed.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/38106d5fd7b4665414ca15616e5a3f4d7bae3465b85491e9.png)

But other times I don't feel comfortable on paths with a double blue label. Maybe the protection is flimsy. Maybe the bike lane isn't wide enough. Maybe the nearby traffic is too fast. Maybe the intersections are dangerous. Maybe you're in range of being ["doored"](https://en.wikipedia.org/wiki/Dooring).

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/ed51238848806220debcef1050f3426377720d68cc15633d.png)

Double green labels are for [neighborhood greenways](https://www.portland.gov/transportation/what-are-neighborhood-greenways). Neighborhood greenways are streets where cyclists share lanes with cars and with features that make things safer for cyclists like low speed limits, protected crossings, and traffic calming.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/40d65353117b60d5f3389ceb1be99a81f07f7d7a1ca063b0.png)

https://www.portland.gov/transportation/what-are-neighborhood-greenways

I'm usually pretty comfortable on these greenways, but not always. Some are better than others. In particular, because of the intersections.

Here is an example. I take the greenway shown below a lot. The street intersecting with it has some really fast traffic. It has cars that recently got off the freeway and are flying by. Depending on the cars that are parked in the area, the visibility isn't great, so I often find myself having to slowly inch up and make sure it is safe to cross.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/a3493edbf8504f98593eed1c08fad50686eb00a74ca171f1.png)

Anyway, all of this is to say that I want to figure out a route that works well for me and doing so requires some thought. I could just look at [http://portlandbikemap.com/](http://portlandbikemap.com/) and eyeball the most direct route that uses purple, double blue or double green paths, but I'm not comfortable on all double blue paths, and some double green ones are better than others.

So I went over to the [BikeLoud](https://bikeloudpdx.org/) Slack to ask for help. There are a bunch of very experienced cyclists over there who are very eager to help. And sure enough, people immediately were able to point out where the tricky intersections are and which back routes I might want to consider.

But the conversation started off with someone asking me how important comfort is compared to directness. It's a valid question, but for reasons that are hard to articulate, it kinda broke my brain.

At the time I pushed past the confusion, waved my hands, and said that comfort is moderately more important to me. But saying that felt wrong. I couldn't put my finger on what, exactly, felt so wrong about it, but something definitely did. Well, in this post I'd like to explore these feelings of wrongness and confusion.

* * *

I guess the issue is that my real answer is "it depends". I can't actually say that comfort is always more important than directness, and I can't say that the magnitude is always moderate.

One issue is that the importance of comfort depends on the "starting point". If the starting point is a 9/10 and we're talking about moving from there to a 10/10, that's not as important to me as going from a 5/10 to a 6/10.

I probably have a threshold somewhere around 8/10 where diminishing returns kick in. So if I'm currently at a 9/10 level of comfort and 4/10 level of directness, I'd prefer a gain in directness over a gain in comfort.

Maybe this will make more sense if we view it graphically. Consider the graph below:

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/9bf348b104192b39f3aea4f742eae9d840bddef441b376f8.png)

Asking how important comfort is to me feels like asking what the slope of the graph is. It depends!

Yeah, "it depends" feels right. More generally, my preference for comfort vs directness depends on various things. How's the weather? Is it dark out? Am I in a rush?

I suppose you could say that the importance of comfort relative to directness is a function of numerous things:

1.  Current comfort level
2.  Current directness level
3.  Weather
4.  Light
5.  Urgency

The output depends on the inputs. In code, it'd look something like this:

    function getImportanceOfComfortRelativeToDirectness(
      currentComfortLevel,
      currentDirectnessLevel,
      weatherQuality,
      lightLevel,
      urgency
    ) {
      ...
    }

With that said, I think that feeling of "my brain broke" was the feeling of it throwing an error: "Illegal number of arguments: expected 5, got 0."[^nakhvzok02f]

But people are able to productively ask and answer these sorts of questions all the time, despite the fact that there are "missing arguments". What's going on here?

Well, for my first stab, I hypothesized that people have defaults for these arguments. So when you ask the question without specifying things like current comfort level and weather quality, they just assume you mean a moderate current comfort level and decent weather.

    function getImportanceOfComfortRelativeToDirectness(
      currentComfortLevel = 5,
      currentDirectnessLevel = 5,
      weatherQuality = 8,
      lightLevel = 8,
      urgency = 5
    ) {
      ...
    }

But I don't think that's quite right. I think people try calling the function with a bunch of different plausible values, and then kinda average the results. 

    getImportanceOfComfortRelativeToDirectness(5, 5, 8, 8, 5) => 4
    getImportanceOfComfortRelativeToDirectness(5, 5, 5, 5, 3) => 6
    getImportanceOfComfortRelativeToDirectness(7, 4, 8, 8, 3) => 3
    ...

It's assumed that we're talking about plausible values here. If the person wanted to know how important comfort was to me relative to directness when it's raining and dark out, they would have said so. When you don't explicitly pass an argument, it's assumed that the argument should take some sort of realistic value.

* * *

This societal norm makes sense to me. There's a convenience vs accuracy trade-off at play. It's a lot easier to just ask about the importance of comfort vs directness than it is to ask about the importance of comfort vs directness when current comfort and directness levels are moderate, the weather and light levels are good, and I'm not in a rush. And it's particularly difficult to articulate the question of how important comfort tends to be compared to directness for various plausible collections of arguments.

Still, I think a lack of specificity can lead to issues. If you suspect that this is happening, I think it would be wise to re-evaluate the trade-offs. Maybe it'd make sense to take a step back, dial up the accuracy at the expense of convenience, and check in to see what arguments different people are using.

[^nakhvzok02f]: I get similar feelings when wrong questions are asked.