I think of them as two-place predicates, but with one of them curried by default indexically, much like in a member function in C++ foo means this->foo unless otherwise specified. (I already made that point in the second edit to this comment.)
Yeah, that makes sense as far as it goes, but I find that humans aren’t consistent about their defaulting rules. For example, if I say “X is right” to someone, there’s no particular reason to believe they’ll unpack it the way I packed it.
That can be all right if all I want to do is align myself with the X-endorsing side… it doesn’t really matter what they understand, then, as long as it’s in favor of X.
But if I want to communicate something more detailed than that, making context explicit is a good habit to get into.
Even with the disadvantage of sometimes coming across as condescending, or even often coming across as condescending to particular people, this is excellent advice.
I think of them as two-place predicates, but with one of them curried by default indexically, much like in a member function in C++
foo
meansthis->foo
unless otherwise specified. (I already made that point in the second edit to this comment.)Yeah, that makes sense as far as it goes, but I find that humans aren’t consistent about their defaulting rules. For example, if I say “X is right” to someone, there’s no particular reason to believe they’ll unpack it the way I packed it.
That can be all right if all I want to do is align myself with the X-endorsing side… it doesn’t really matter what they understand, then, as long as it’s in favor of X.
But if I want to communicate something more detailed than that, making context explicit is a good habit to get into.
Even with the disadvantage of sometimes coming across as condescending, or even often coming across as condescending to particular people, this is excellent advice.