[Haskell-cafe] Alternative name for return
Richard A. O'Keefe
ok at cs.otago.ac.nz
Wed Aug 7 08:07:57 CEST 2013
On 7/08/2013, at 2:10 PM, damodar kulkarni wrote:
> I bet you can find an abundance of C programmers who think that
> "strcmp" is an intuitive name for string comparison (rather than compression, say).
> But at least, 'strcmp' is not a common English language term, to have acquired some unintentional 'intuition' by being familiar with it even in our daily life. The Haskell terms, say, 'return' and 'lift', on the other hand, do have usage in common English, so even a person with _no_ programming background would have acquired some unintentional 'intuition' by being familiar with them.
"Lift" is - a brand of soft drink, the thing Americans call an elevator,
a thing put in your shoes seem taller, and a free ride, amongst other things.
As a verb, it can mean to kick something.
To find "lift" intuitive, you have to be familiar with the *mathematical*
idiom of "lifting" a value from one space to another via some sort of
injection. Fair enough, but this *still* counts as an example of
"intuitive = familiar", because this is *not* a sense of "lift" that is
familiar to undergraduate and masters computing students unless they have
taken rather more mathematics papers than most of them have.
If you're familiar with *English* rather than, say, the C family of
programming languages, "return" isn't _that_ bad, there is certainly
nothing about the word that suggests providing a value. I once tried
to propose a C-style 'return' statement to some people who were
designing a programming language, before I or they had ever heard of
C, and they flatly rejected it. Months later I found out that this
was because they were looking for something that did not just resume
the caller but also provided a value, and when I protested that that's
exactly what 'return' did in the languages I proposed stealing from,
they -- being familiar with Fortran -- said that it had never occurred
to them that 'return' could have anything to with providing a value.
"It is intuitive" has no other discernable meaning than "*I* am familiar with it,
or something very much like it."
_That's_ the point I want to make. *Whatever* anyone uses for Haskell's
"return", many people are bound to find it unintuitive. Choose a name
on any grounds but that.
More information about the Haskell-Cafe