Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: R: Mutability and sameness - a new puzzle

From: rotenca:telvia:it at: 23-Jul-2001 13:00

From: "Ladislav Mecir" <[lmecir--mbox--vol--cz]> Thank you for your patience, I'm trying to learn Rebol reading your articles, so my vision is not so clear. Mine are often "free thought"...
> Your approach is valid. The only problem with it is, that if you apply it > consistently, you are not able to discern: > > e: [1] > f: [1] > > , because they are discernible only by mutations (if we exclude the > bug-plagued SAME?), exactly like the A and B values above.
Yes.
> I would say, that index is really an attribute of Rebol series and has > little to do with words ...
My error. I'll try to clear my vision to myself (and correct it in the meanwhile). There are 3 distinct layers. word-series-data 1) word: changing the binding of a word does not changes data, but can changes the result of expression "get/any..." 2) series have index, which is not indifferent to "same?" except when index is beyond tail. Two series can appear different even if they are linked to the same close set of data: if all the data are the same (same? head a head b;==true), difference depends only by index. 3) different storage of identical data can be revealed by some functions. However in many cases, the storage of values is indifferent to "same?": same? 1 1; ==true I ask myself: the two "1" where are stored? At the same "memory address"? Are they mut-equal? Are dependent? Are independent but are the same? I can discern the two "1" but they are the same. I do not understand. Sameness appears to me like an arbitrary convention that has not a "real" meaning. It has for me little "reality" or "naturality". Correct my vision: your approach to the problem is: we can't make a "real" (hardware?) model of sameness in Rebol, but we can construct a specific routine: the class of all its "true" result is what we call "sameness" in Rebol. Could be the only possible solution.
> I see, what you are after. You are saying, that you can create a similar > expression as the one I used and get a different result. The expression can > be even more similar, than you have shown: > > a: 4 > expression: to paren! [same? get/any 'a get/any 'a] > b: use [a] [a: 3 ['a]] > change at :expression 3 b > probe :expression ; == (same? get/any 'a get/any 'a) > expression ; == false
Here I see your experience!
> Although the similarity is obvious, I must say, that there are visible > differences.
Perhaps in Rebol same things are not always the same. :-)
> What I had in mind was actually any expression having the property to yield > a Rebol value. I.e. for some values the (eq :a :a) will do, for some cases > (eq 1 + 1 1 + 1) will do, for some cases (eq first [1] first [1]) will do, > for some cases (eq get/any in system/words 'a get/any in system/words 'a) > will do, etc. The only thing we really need for the expression is to start > with "(eq", finish with ")" and contain one subexpression representing a > Rebol value written twice in succession. I thought, that the expression like > (get/any 'a) would be sufficient, because it can represent all necessary > cases.
My conjecture is that it doesn't exist in Rebol one expression which in every situation and for all purpose give always the same result, because of reflectivity of language. It is a conjecture.
> That is what I am after here (to make the "same data" meaning clear). I > don't intend to make clear the meaning of the "two words have the same > meaning". I am pretty sure, that the words have very little to do with the > subject. >The only reason why I used the subexpression (get/any 'a) lies in > the fact, that it can represent any Rebol value. But, If you are not > comfortable with it, you can use any other subexpression, which is capable > to represent a Rebol value.
You make ask to myself: what is a value in Rebol? A "value" seems only the result of the evaluation of an expression. We can't see data itself; we can see only the results of expressions. I could say that value in Rebol is what is printed on the console after an expression + Return. It is not an entity that exists in front of the language but the result of language. We could disassemble Rebol and go and see what "really" is a series, an integer, a string. However, we should exit from Rebol. In C I can write: a=1 then, build a pointer to "a" and see what "1" means for C, bit for bit, which all we know are a state (on/off) of a real (hardware) cell of memory. We can also check this with an assembly routine passing the pointer. But in Rebol we can't do it, we must believe in User Guide when it say something to us about storage of integer; we have no pointers. For us integer! is a syntax convention, something like: sign-digits Therefore, sameness has a meaning only in the language (it is the formality of sameness). Can we define "value" in Rebol without a Rebol expression? "Value" does not seem something that exist outside the language and that the language find , but a construct, not a "data" (in the literal sense of word). Could we speak of Rebol as of a kantian language? :-)
> What about a question: "Is the value 1 indiscernible from itself?" I am > convinced, that the question has got its meaning regardless of the fact, > that the answer should be positive in this case.
Your question is: can I predicate "indiscernible" to "1" and "itself"? Here we do not discern two real 1, we discern the predicate "1" (with its meaning) from the predicate "itself", whose meaning is different from the meaning of "1". In other words: Can we predicate to the "thing" 1 the two (obviously) different predicates "1" and "itself"? I admit: my English competence is very limited, I could explain it much better in my language. This is Leibniz, not necessary my thought (I made a boutade two message ago). As you know, Leibniz indiscernibility lead to "simplicity" against "extension" and to "spirit" against "matter". What is truly indisc. has no part, no space, no time, no relations, no windows (!). His idea, as you see, has many deep consequences.
> Ladislav
ciao Romano