r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3]

Geomol
7-Jun-2011
[9070]
It's also interesting, that if /only isn't used, the result is what 
I first would expect:

>> s: [a b c d e f g h]
== [a b c d e f g h]
>> insert s find s 'd
== [a b c d e f g h]
>> s
== [d e f g h a b c d e f g h]
Ladislav
7-Jun-2011
[9071]
block: [1 2]
index? block ; == 1
insert block 0
index? block ; == 1

list: make list! [1 2]
index? list ; == 1
insert list 0
index? list ; == 2
Endo
7-Jun-2011
[9072x2]
without /only is more general use of course, but it is completely 
different. In your last example (Geomol) you get the values of a 
series and insert them into another series.
with /only you get a "pointer" to a series and put that "pointer" 
into another series. (I know "pointer" is not a correct word for 
this but you got the idea)
Geomol
7-Jun-2011
[9074]
What if I want to insert the tail position of a series earlier in 
the same series?

>> s: [1 2]
== [1 2]
>> insert/only s tail s
== [1 2]
>> s/1
== [2]
>> insert/only s next tail s
== [[...] 1 2]
>> s/1
== [2]

So that can't be done.
Endo
7-Jun-2011
[9075]
So you could have a series which holds "pointers" to other some positions 
in another series, even a position in itself.
Ladislav
7-Jun-2011
[9076]
s: make list! [1 2]
insert/only s tail s
s/-1 ; []
Geomol
7-Jun-2011
[9077]
Yes, works with list as expected.
Ladislav
7-Jun-2011
[9078]
It is not hard to find out, why it cannot work with blocks the same 
way
Geomol
7-Jun-2011
[9079]
It can't? Isn't that just a design desision?
Ladislav
7-Jun-2011
[9080]
It can't
Geomol
7-Jun-2011
[9081]
*decision*

ok, can you explain why or give an example, that clearly show it?
Ladislav
7-Jun-2011
[9082]
The above list example proves, that lists don't "know" their index, 
and have to calculate it every time, which means, that "index access" 
is slow.
Geomol
7-Jun-2011
[9083]
I think, this is only a problem with blocks, if you insert a later 
position earlier in the same block.
Ladislav
7-Jun-2011
[9084]
As opposed to that, blocks are designed for fast index access, so 
they have to "know" it, which means, that INSERT cannot change it
Geomol
7-Jun-2011
[9085x2]
I don't think, INSERT have to change position of some index, it just 
have to insert the next position than the one given, and only if 
insert is earlier in the same series.
I can't see, it shouldn't work. But we'll see...
Ladislav
7-Jun-2011
[9087x3]
I don't think, INSERT have to change position of some index
- that formulation does not make sense to me
index is a number
the one obtained using the INDEX? function
Geomol
7-Jun-2011
[9090]
I read you, as INSERT cannot change an index. I say, INSERT should 
just add 1 to the index number, it receives, and only in that special 
case.
Ladislav
7-Jun-2011
[9091x2]
INSERT cannot do such a "harakiri"
how could it?
Geomol
7-Jun-2011
[9093]
:)
Ladislav
7-Jun-2011
[9094x3]
just realize, that index is a number, and every blocks remembers 
it
if it did not, it would have to calculate it every time
and, since the index attribute is immutable, in fact, the INDEX function 
cannot change it
Geomol
7-Jun-2011
[9097]
I'm not talking about calculating every time and changing of indexes 
being hold by variables and such. I only suggest, that INSERT does 
this:


If /only and if value being inserted is an index (or position or 
what we should call it) later in the same series, where we are inserting, 
add 1 to the index value and insert that.
In all other cases carrie on as usual.
Ladislav
7-Jun-2011
[9098]
THat is nonsense, it would be incompatible with the above example 
I wrote
Geomol
7-Jun-2011
[9099]
I'm sorry, if it doesn't make sense. I sometimes find it easy to 
figure out such solutions but very difficult to explain it to others. 
:) I'll just go and implement it myself.
Ladislav
7-Jun-2011
[9100x2]
You need to realize, that "insert/only a block into a block with 
the same head" has to be compatible with "insert/only a block into 
a block with distinct head"
Otherwise you are asking for any kind of trouble you can invent.
Geomol
7-Jun-2011
[9102]
sure, and it's possible to test for that.
Ladislav
7-Jun-2011
[9103]
Well, the only thing I can suggest you is to try it and see which 
incompatibilities you get.
Andreas
7-Jun-2011
[9104x3]
Geomol, refering to your example above:

>> s: [a b c d e f g h]
== [a b c d e f g h]

>> p: find s 'd
== [d e f g h]

>> insert s 42
== [a b c d e f g h]

>> p
== [c d e f g h]
Extending this to your insert/only observation, the behaviour is 
perfectly consistent.
Whereas with your awful proposed insert/only-hack, it would not.
Geomol
7-Jun-2011
[9107]
I see no problem with your example. I'm surprised, you find my suggestion 
"awful". What's awful about this:

>> s: [a b c d e f g h]
== [a b c d e f g h]
>> p: find s 'd
== [d e f g h]
>> insert/only s p
== ....
>> s/1
== [d e f g h]
>> p
== [c d e f g h]
Kaj
7-Jun-2011
[9108]
John, remember our previous discussion, that indexes are not properties 
of series, but properties of series references. Therefore, it makes 
no sense to try to make a vector behave like a list, because any 
other references to the vector are unknown and thus it's impossible 
to make the behaviour for those references consistent
Ladislav
7-Jun-2011
[9109]
The awful property is as follows:

s: [a b c d e f g h]
t: [a b c d e f g h]
p: find s 'd
insert/only s p
insert/only t p
same? first s p ; == false !
same? first t p ; == true
Geomol
7-Jun-2011
[9110]
That's a strong point!
Robert
10-Jun-2011
[9111x4]
I'm really wondering what's up with Carl.
If he shows up (maybe once every 6-8 weeks) only for 1-2 minutes...
If he lost faith in Rebol-3?
And, I don't understand why he can't be reached. All available channels 
are dead...
Kaj
10-Jun-2011
[9115]
Probably trying to build a big antenna to phone home
GrahamC
10-Jun-2011
[9116]
Doesn't he have a phone?  Or did he give away his iphone?
james_nak
11-Jun-2011
[9117]
So Robert, you also haven't been in contact with him? I thought he 
was working with you all this time. Hmmm.
Henrik
11-Jun-2011
[9118]
Last spotted this tuesday in the RM Asset world, but no feedback 
so far.
GiuseppeC
11-Jun-2011
[9119]
Robert I have the same questions you have. Carl must acknoledge that 
our life and companies are waiting for him.