World: r3wp
[Core] Discuss core issues
older newer | first last |
Graham 18-Nov-2006 [6275] | how come when I create a new test object, it has the same c object ? Shouldn't that be a new object as well? |
Anton 19-Nov-2006 [6276x2] | No, when using MAKE, sub-objects are shared (functions are cloned). This is how sharing of feel objects is implemented when faces are cloned. |
So, if you want to be sure to clone your object and every field, you will have to check every field to see if it is an object and clone it too. | |
Graham 19-Nov-2006 [6278] | that's a bit painful ... guess why I never used objects much before. |
Anton 19-Nov-2006 [6279] | Yes, sharing is handy but not when you don't want it. :) |
Sunanda 20-Nov-2006 [6280] | Quick hack, Graham: test: make object! [ a: b: none c: make object! [ d: none]] obj: make first reduce load mold test [ c/d: "testing"] |
[unknown: 10] 20-Nov-2006 [6281] | x: [ 2 4 6 ] y: [ x/1 ] how do i get the value from y/1 ? I know this is perhpas very newbe but once every year I always run into this and can figure it out... reduce y/1 gives me x/1 but I want 2.. Im missing somekind of 'eval y/1 ... |
Henrik 20-Nov-2006 [6282] | do y/1 |
[unknown: 10] 20-Nov-2006 [6283] | no that gives me also x/1 |
Henrik 20-Nov-2006 [6284] | it works fine here? |
[unknown: 10] 20-Nov-2006 [6285x3] | not here.. |
>> x: [ 1 2 3 ] == [1 2 3] >> y: [ x/1 ] == [x/1] >> do y/1 == x/1 >> x: [ 1 2 3 ] == [1 2 3] >> y: [ x/1 ] == [x/1] >> do y/1 == x/1 | |
odd ... | |
Henrik 20-Nov-2006 [6288x2] | >> x: [2 4 6] == [2 4 6] >> y: [ x/1 ] == [x/1] >> y/1 == x/1 >> do y/1 == 2 |
try a fresh console, I've done it successfully on mac with view 1.3.2 and winXP with view 2.7.0 | |
[unknown: 10] 20-Nov-2006 [6290] | your kidding me... Could that be a problem ? |
Henrik 20-Nov-2006 [6291] | well, if some variable has been changed. |
Gabriele 20-Nov-2006 [6292] | do on paths was added in 1.3.1 or something i think. |
Henrik 20-Nov-2006 [6293] | hmm... it could be that it evaluates as a path |
[unknown: 10] 20-Nov-2006 [6294] | mmm nope no effect -> >> x: [ 2 4 6 ] == [2 4 6] >> y: [ x/1 ] == [x/1] >> y/1 == x/1 >> do y/1 == x/1 >> |
Henrik 20-Nov-2006 [6295] | rebolinth, system/version ? |
[unknown: 10] 20-Nov-2006 [6296] | REBOL/Core 2.5.6.4.2 |
Gabriele 20-Nov-2006 [6297x2] | use 2.6 :) |
otherwise you need to do y or do reduce [y/1] | |
[unknown: 10] 20-Nov-2006 [6299x2] | Mmmmmmmm all that brain cracking the whole day .... in 2.6 its working... |
Thanks...I finaly can finish my Brain-Game ;-) | |
Graham 21-Nov-2006 [6301x3] | Anyone built an xml to rebol object utility? |
I'm talking about well formed xml, no attributes involved. | |
No matter, xml-to-object works fine. | |
Ladislav 21-Nov-2006 [6304] | Please do not run this in REBOL console. Instead I want you to tell me what you expect as a result: unset 'a a/x: (a: 1x2 3) |
Gabriele 21-Nov-2006 [6305] | i'd expect an error. |
Henrik 21-Nov-2006 [6306x2] | I would probably expect 'a/x to be 3 |
depends if it checks whether the path exists or not before the () part is evaluated | |
Ladislav 21-Nov-2006 [6308x2] | ...and what you expect in case: a: 1x2 a/x: (a: [x 4] 3) |
or: a: 1x2 a/x: (unset 'a 3) | |
Henrik 21-Nov-2006 [6310x2] | a = [x 3] |
I'd expect path error. | |
Ladislav 21-Nov-2006 [6312] | generally spoken, the "post-check" checking after the () part is evaluated looks safer (IMO) |
Gabriele 21-Nov-2006 [6313] | so, interpreter should evaluate the argument first, then the set-path? |
Ladislav 21-Nov-2006 [6314] | if implemented the other way around, it is unsafe (IMO again) |
Gabriele 21-Nov-2006 [6315x5] | but: |
>> f: func [/x] [print "huh"] >> f/x huh >> f/x: huh | |
so... what happens with a/x: (a: func ...) ? | |
it would be evaluated out of order. | |
(if a was already func that is) | |
Ladislav 21-Nov-2006 [6320x2] | My proposal is, that f: func [/x] [print "huh"] f/x: 1 should be an error (cannot use set-path on a function) |
OTOH, f: func [/x] [print "huh"] f/x: (f: 1x2 3) should behave differently | |
Gabriele 21-Nov-2006 [6322] | it's mainly a matter of wheter it is more natural for the set-path to be evaluated first or last. |
Ladislav 21-Nov-2006 [6323x2] | the trouble is, that only the second variant may be safe (IMO) |
, because the first variant relies on information, that may be "invalid" | |
older newer | first last |