World: r3wp
[!REBOL3 Proposals] For discussion of feature proposals
older newer | first last |
Ladislav 20-Jan-2011 [754] | Hmm, I would prefer the current state, then: - == is what I would use frequently, while I would not want to use =? in place of it, because of the difference - the change would require quite a lot of work, and where is a guarantee, that a new idea does not occur in a couple of weeks again? |
BrianH 20-Jan-2011 [755] | The long wording is for precision, and because these tickets serve as documentation of the issues for future reference. |
Andreas 20-Jan-2011 [756x4] | I don't want to define what the comparison dimensions are in this ticket. Leave that to an external document. |
That only hides the important issue. | |
Also, it is wrong: "equal? ... ignores case-aliasing of words". | |
equal? also ignores every other aliasing. | |
BrianH 20-Jan-2011 [760] | I changed that. |
Andreas 20-Jan-2011 [761x3] | Still wrong. |
>> a: 42 == 42 >> alias 'a "b" == b >> equal? 'a 'b == true | |
Ladislav, thanks. Seems the better option then would be to map == and !== to strict-equiv? and strict-not-equiv?. | |
BrianH 20-Jan-2011 [764] | I don't want to emphasize the aliasing thing or otherwise the ticket would need editing if/when ALIAS goes away. Still, good point. |
Andreas 20-Jan-2011 [765] | Then don't emphasize it. It is one comparison dimension that currently exists. |
BrianH 20-Jan-2011 [766] | That reminds me, need to check whether there is a ticket to remove ALIAS. |
Andreas 20-Jan-2011 [767x3] | No, there is not. |
Ignores datatypes, bindings, case, aliasing. should be sufficient | |
Also, get rid of the *NOT* mentions in the main body. If at all, mention that in a remark at the end of the ticket. | |
BrianH 20-Jan-2011 [770x2] | Good idea. |
Done. | |
Ladislav 20-Jan-2011 [772] | BTW, Same? is still less strict than my Identical? (even for decimals) |
BrianH 20-Jan-2011 [773] | Interesting. How does that happen? I thought SAME? just did a bit-for-bit comparison. |
Ladislav 20-Jan-2011 [774] | yes, but the NEW-LINE? bit is ignored |
Andreas 20-Jan-2011 [775x2] | Heh :) awesome. |
Ok, ticket's good. Thanks Brian. | |
BrianH 20-Jan-2011 [777] | That's funny :) |
Andreas 20-Jan-2011 [778] | (Maybe add a blank linke before the - EQUAL? item.)( |
BrianH 20-Jan-2011 [779] | I didn't even know there was a newline bit, though it seems obvious in retrospect. It would be lost in the transfer of the value to the stack frame for the function call I bet, because stack frames and value slots of contexts don't keep track of newlines. You'd have to pass in a reference to the block the value is stored in, I'm guessing. |
Ladislav 20-Jan-2011 [780] | wrong |
BrianH 20-Jan-2011 [781] | Even more interesting. Say more. |
Ladislav 20-Jan-2011 [782] | written in http://www.rebol.net/wiki/Identity#The_new-line_attribute |
BrianH 20-Jan-2011 [783] | I used to think that newlines in blocks were hidden values in the block itself. It makes sense to just have it be a bit in a value slot. |
Andreas 20-Jan-2011 [784x2] | It is a value bit. |
>> a: copy [1 2 3] == [1 2 3] >> new-line next a on == [ 2 3 ] >> b: copy [] == [] >> append b first a == [1] >> append b second a == [1 2 ] >> append b third a == [1 2 3 ] | |
BrianH 20-Jan-2011 [786x2] | Guess it's in all value slots, not just the ones in block types, and just ignored when inapplicable. |
At least that makes the value slot easier to implement. Good choice. | |
Ladislav 20-Jan-2011 [788] | Well, it is not ideal this way, for two reasons: - it does not affect all possible line break positions in a block (there are n + 1 such positions in a block of length n, as can be easily figured) - it "pollutes" the values, affecting their identity, e.g. |
Andreas 20-Jan-2011 [789] | Well, the latter is probably why same? does not respect this bit, no :) ? |
BrianH 20-Jan-2011 [790] | It also makes the "immediate values aren't modifiable" argument a little more iffy. |
Ladislav 20-Jan-2011 [791x3] | But the differences are real, that is like putting our head into the sand pretending there is no danger nearby |
{It also makes the "immediate values aren't modifiable" argument a little more iffy.} - I do not use the notion of "immediate values", neverheless, it does not, I would say | |
(the NEW-LINE attribute is immutable) | |
BrianH 20-Jan-2011 [794] | It's mutable with the NEW-LINE function :) |
Ladislav 20-Jan-2011 [795x3] | No, see my article |
It is exactly as mutable as the sign of an integer is, when using the Negate function | |
(not at all) | |
BrianH 20-Jan-2011 [798x2] | Immediate values are a bit iffy concept in REBOL anyways, so it's probably for the best that you don't use the notion. Nonetheless, there is a documentary typeset in R3 called immediate!, which includes the values that are fully stored within a value slot, rather than referencing memory elsewhere. |
That is what I meant by "immediate values". | |
Andreas 20-Jan-2011 [800] | Let's move this to !REBOL3, shall we. |
BrianH 20-Jan-2011 [801] | Naw, let's let it go :) |
BrianH 21-Jan-2011 [802] | Strangely enough, while there is no obvious operator for EQUIV?, we could use === for STRICT-EQUIV? and !=== for STRICT-NOT-EQUIV?. |
Maxim 21-Jan-2011 [803] | EQUIV? could be ~ its the actual math symbol for it. http://en.wikipedia.org/wiki/Table_of_mathematical_symbols |
older newer | first last |