3 ms·
> We can see the distinction, we just don't use the same terminology you use. No, most of the people I've talked to here clearly couldn't see the distinction b
by catnaroek 10y ago
> We can see the distinction, we just don't use the same terminology you use.
No, most of the people I've talked to here clearly couldn't see the distinction between a value and its representation. (FWIW, I'm not fully convinced you can see it either.) They're not used to thinking about values without thinking about how they're represented. They're abstraction-challenged.
> We use standard terminology by which what you call an object is a value.
That's not consistent with some of the things other people have said here. But let's ignore that. What do you call what I call a value? Not that I'm a nominalist, but in practice, I've seen that people don't understand concepts they don't have a name for. (Though I probably have the causality backwards. It would be more accurate to say that, as soon as people understand a new concept, they rush to give it a new name.)
> Your definition of the terms only shows up in an obscure part of FP, which is still a bit obscure in itself.
It's not obscure. It's in the operational semantics of any call-by-value language, which for practical purposes means any language other than Haskell.
> I've tried to point this out to you at least three times, and I'm losing my patience.
Well, it's not like you have to deal with me if you don't want to. You do so out of your own volition. shrug
- qwertyuiop924 10y agoThere's a differance between being abstraction challenged and wishing to understand the abstraction. We don't have a name for what you call values, as they're either irrelevant, or nonexistant in most contexts, and barely mentioned. However, we can't call them values, as that name is taken. Most CBV languages call them atoms, but that doesn't fit because they aren't necessarily atomic. Let's try... Symbolic value? It seems to work: a given symbolic value represents all other equivalent symbolic values, and it's value that behaves like the symbol type in most languages. So that works unless it's already taken. The point is, your definition of value needs a name that doesn't collide with the names of similar concepts and ideas. It doesn't really matter what it is. Unfortunately, this is one name clash that gensym can't handle for us. :-)
- catnaroek 10y ago> We don't have a name for what you call values, as they're either irrelevant, or nonexistant in most contexts, and barely mentioned. They do exist. Python has va... errr... the-thing-for-which-we-don't-yet-have-a-name: small enough numbers, special constants and object references. And they are relevant, because these are the things that you can bind to variables, pass to and return from functions, etc. If you think they are irrelevant, you don't understand them well. > However, we can't call them values, as that name is taken. I won't quibble about names. > Most CBV languages call them atoms, C is call-by-value. No atoms. Java is call-by-value. No atoms. ML is call-by-value language. No atoms. Maybe by “call-by-value”, you mean “inspired by Common Lisp”? That's not what call-by-value means, though. > but that doesn't fit because they aren't necessarily atomic. Right. In fact, the whole point is to use compound ones whenever we can! > Let's try... Symbolic value? It seems to work: a given symbolic value represents all other equivalent symbolic values, and it's value that behaves like the symbol type in most languages. So that works unless it's already taken. A symbol is supposed to represent something else, but a va... errr... the-thing-for-which-we-don't-yet-have-a-name doesn't represent anything else. If anything, what I call representations are the ones representing something else. I propose “mathematical value”. Not everything you call a value can be plugged into an equation, but mathematical values by definition can.
- jdmichal 10y agoWhy do you reference call-by-value? Call-by-value vs. call-by-reference (and the related value- and reference-type semantics) is entirely about the in-memory representation of parameters, and you have been very adamant that your definition of value does not depend on in-memory semantics.
- catnaroek 10y agoI was comparing call-by-value with non-strict evaluation strategies like call-by-name and call-by-need.