This week in https://open.substack.com/pub/tidydesign/p/dot-dot-dot-bang-bang-bang-and-docall, I discuss a tidyverse interface that I'm still not sure about: !!!
@hadleywickham As is weirdly common, I hit a use case for !!! right after I read this post. Saved me some headache. 🤓
FWIW, thoughts:
What you're focused on in this post is reduce-y stuff with lists. But the alternate approaches like `reduce()` and `do.call()` don't work in vector applications, like
fct_recode(x, !!!levels)
If you come up with some fancier approach to the `bind_rows()` situation, I'd hope it also applies to named vector situations.
I am more inclined to use, and teach, function wrappers with names instead of symbols.
To teach !!!, I'd have to get into why it's special and how !! is totally different but also not and none of them are the same as using ! multiple times on a Boolean etc etc.
So my ideal solution here would be essentially be a named function that is literally identical to !!! that just means "hey treat the elements of this object as separate arguments to the function".
@hadleywickham @kellybodwin Not sure whether this matters, but coding typefaces that support ligatures (for example, Fira Code) further exaggerate the visual difference between <- and < -. The symbols that result from typing each respective expression are, I would argue, quite different. For that reason, I would contend that those symbols not causing confusion might, in some cases at least, be attributable to an exaggerated visual difference due to ligatures.
@capbri @kellybodwin I don’t think most people use one of those fonts