The Distracting Thing about Hadley Wickham's Talk
I am up way past my bedtime because I went to go see talks by Jenny Bryan and Hadley Wickham at the local R-Ladies Meet-up. They were both entirely lovely talks, even if I do favor a different set of idiosyncratic tools than the ones that they prefer.
There was a component of Hadley Wickham’s talk that I found sort of distracting. It seemed to be there to bolster the argument that the thing is not its name, the map is not the territory, philosophy, yadda yadda, and all that. He was defining a sort of nested evaluation in terms of a tree, and it matched imperfectly with things that I had learned about long ago, and it was super-distracting for me to try to match my long-ago memories with what was happening at the talk.
The reason that this was an issue at all is that R is full of quirks, and some of them
involve the way that objects are referenced (dereferenced?) by their names. Some functions
expect unquoted strings as their argument. So you would use f(string)
to apply f
to
"string"
. And if you said name <- "string"
, it’s sort of a pain to apply f
with
respect to name
. This might be an issue if you have a vector of strings and you want
to apply f
to all of your strings and you need to find some sort of work-around.
As part of his talk, he associated each function call with the root of a tree, and each
leaf was either the name of the function or one of its arguments. So f(x, y)
would
have some nameless root, and there would be three leaves: f
, x
, and y
. But then
he noted that x
might itself be the name for something. Maybe x = a + b
so you
could hang the leaves +
and a
and b
off of x
(he was using prefix notation) and
continue building your tree by substituting back in for what all of the various things
in your expression represented.
But with all of these functions written in prefix notation and thrown into a data structure (no word on how one was expected to transverse this tree – I think this tree was built for humans and not for computers, as it seemed like one just read off the leaves from left to right without regard for their ancestry), I started having flashbacks to my liberal arts education. Of course, my past self was introduced to such functions with postfix notation, and things were thrown on a stack instead of into a tree. But during the talk, I couldn’t quite reconcile these things, and I kept having the sense that something is not quite right.
Maybe other people got something about all the talk of trees in the middle of the talk, but I was pretty distracted by how this reminded me just enough of the sorts of computer science that we learned back in the early 90s but wasn’t quite the same.