5 ms·
> Why do you not mind being poorly understood? What I said I didn't mind is the “ire you are experiencing”. It somewhat saddens me that programmers, supposedly
by catnaroek 10y ago
> Why do you not mind being poorly understood?
What I said I didn't mind is the “ire you are experiencing”. It somewhat saddens me that programmers, supposedly logical thinkers, can't see the distinction between a value and an object.
> Since you're not trying to communicate effectively, what exactly is it that you think you are doing?
I'm pointing to the distinction between values and objects pretty clearly:
(0) Objects exist in memory. Values exist in the language's semantics, not in computer memory, but representations of values exist in computer memory. Furthermore, objects exist in memory exactly once, but a value may be represented in memory any number of times.
(1) It doesn't make sense to distinguish between representations of the same value. If a program treats two memory blobs differently, their contents represent different values, period. (The converse is not true, of course.)
(2) The language implementation has absolute freedom to represent values as it wishes, as long as (1) isn't violated.
But this isn't the first time I've said all of this in this thread.
- qwertyuiop924 10y ago>It somewhat saddens me that programmers, supposedly logical thinkers, can't see the distinction between a value and an object. We can see the distinction, we just don't use the same terminology you use. We use standard terminology by which what you call an object is a value. Your definition of the terms only shows up in an obscure part of FP, which is still a bit obscure in itself. Use alternate terminology, or explain yourself the first time you use it in a thread - otherwise, we'll all be confused. I've tried to point this out to you at least three times, and I'm losing my patience. This brings to mind another Munroe quote: "You're like the religious zealots who are burdened by their superiority with the sad duty of decrying the obvious moral decay of each new generation. And you're just as wrong."
- 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.