World: r3wp
[!REBOL3-OLD1]
older newer | first last |
Maxim 29-Apr-2009 [13766x2] | but find will trip if records ands content can have the same datatypes... wich is why the /skip refinement makes sense. |
(for select) | |
BrianH 29-Apr-2009 [13768] | Sorry, FIND/skip |
Henrik 29-Apr-2009 [13769] | Maxim, yes. I'd say that if every single REBOL function used /SKIP consistently, you could do flat block databases and rely on /SKIP without getting your records screwed up. |
Maxim 29-Apr-2009 [13770] | its almost the case now... sort/skip find/skip select/skip |
Henrik 29-Apr-2009 [13771] | hey, here's a fun one: a: [1 2 3 4 5 6 7 8] select/skip a 5 -4 hangs. |
Maxim 29-Apr-2009 [13772x2] | which function is fundamentally different in this regards ?.... I don't seem to recall one off the top of my head |
(in regards to /skip) post order makes my last post a bit out of context | |
BrianH 29-Apr-2009 [13774] | Henrik, is that in R2 or R3? |
Henrik 29-Apr-2009 [13775x7] | R3. |
I noticed something weird too. If you have multiple R3 windows open and switch between them, does the window title change? | |
select/skip issue submitted to curecode. | |
The window title thing seems to be related to marking up text in the console and is not caused by R3. Never noticed that before. | |
it seems FIND/SKIP does the same thing. :-) | |
Alpha 50 released. | |
7 reports with /SKIP issues. | |
BrianH 29-Apr-2009 [13782] | Clearly we are going to need a /SKIP doc in R3/Language/Options. |
Henrik 29-Apr-2009 [13783] | Agreed. |
BrianH 29-Apr-2009 [13784] | I wrote MOVE, so talk to me. How should MOVE with negative skip work? Allowed or denied? |
Henrik 29-Apr-2009 [13785x2] | I don't really know. I guess we want consistency? |
From what I can see the correct way is to provide an out of range error on less than zero. | |
Maxim 29-Apr-2009 [13787] | move is like next but modifies the series itself? |
BrianH 29-Apr-2009 [13788] | We don't have consistency, so I figured I'd start with a fuunction I understand. |
Maxim 29-Apr-2009 [13789] | should say move is like skip |
BrianH 29-Apr-2009 [13790x2] | No, move actually moves stuff. |
move: make function! [[ "Move a value or span of values in a series." source [series!] "Source series" offset [integer!] "Offset to move by, or index to move to" /part "Move part of a series" length [integer!] "The length of the part to move" /skip "Treat the series as records of fixed size" size [integer!] "Size of each record" /to {Move to an index relative to the head of the series} ][ unless length [length: 1] if skip [ offset: offset * size: max 1 size length: length * size ] part: take/part source length insert either to [at head source offset] [ system/words/skip source offset ] part ]] | |
Maxim 29-Apr-2009 [13792] | ok, like a change remove combo |
BrianH 29-Apr-2009 [13793] | Right, but safer. |
Henrik 29-Apr-2009 [13794] | BrianH, do we want consistency across all /SKIP or not? That is a big issue. Personally I would like it. |
BrianH 29-Apr-2009 [13795] | We want consistency. We don't have it yet. So this is a start. |
Henrik 29-Apr-2009 [13796] | OK. The solution would be to generate an out of range error for skip <= 0. DIFFERENCE does that correctly. |
BrianH 29-Apr-2009 [13797] | I wrote the other standard option specs after much discussion. We need that discussion before I can write the /SKIP spec. |
Maxim 29-Apr-2009 [13798] | I would really like the /skip to be consistent as "implied fixed record" it would make flat record management and "explicit" feature of REBOL. |
BrianH 29-Apr-2009 [13799] | Right. |
Maxim 29-Apr-2009 [13800x2] | I second out of range error ... including for partial records if it goes beyond the last complete record |
the partial (last) record consistency is part of the /SKIP feature set wich must not be forgotten. | |
BrianH 29-Apr-2009 [13802] | So the question is whether we want an out of range error, like DIFFERENCE, or to constrain to 1 silently, like MOVE. |
Maxim 29-Apr-2009 [13803] | IMO a partial record is valid, until you try an option which would break the /skip alignment... so sort/skip with inclomplete records would always be invalid. |
BrianH 29-Apr-2009 [13804] | Maxim, in R3 bounds checking like that is mostly obsolete for blocks. Values off the end of the block are treated like none in the block. |
Maxim 29-Apr-2009 [13805x2] | so sorting an incomplete /skip would add nones into the block? |
I'd rather have an error, than a corrupted data set. | |
BrianH 29-Apr-2009 [13807x2] | So FIRST [] returns none. I don't know about SORT though - you make an excellent point. EXTRACT adds nones, but doesn't change the original block. |
Let's say that modifying functions should error out if the block is there would be data corruption (just SORT, I think), but retrieval and builder functions should act like the series is none-padded. | |
Maxim 29-Apr-2009 [13809] | in a sense, EXTRACT, being a column selection for a flat record system, would mislead the dataset analysis. I'd really prefer having an error, cause I can't know if there really is a none there of if its missing. these decisions are always tuff... integrity or productivity. large apps require the former, throw away code ususally prefer the later. |
BrianH 29-Apr-2009 [13810] | if the block is there would be data corruption -> "if there would be data corruption" |
Maxim 29-Apr-2009 [13811] | maybe, as a helper for explicit flat record handling we could add a really simple func which returns true/false for complete records. its not that its hard to write, just that its cleaner if we all use the same func for it. what do you think? |
BrianH 29-Apr-2009 [13812] | Maxim, it was decided that for R3 the bounds of a series were more of an implementation detail, not an error. A none in the middle of a block is considered the same as a none off the end of a block. That is why the ordinals (first and such) act like PICK now. |
Maxim 29-Apr-2009 [13813x2] | then, if someone really needs partial record detection he can know before knocking code on it. |
I usally use none as a no-value/don't care/error especially since I use ANY/ALL a lot, but for records, none and missing data are completely different. | |
BrianH 29-Apr-2009 [13815] | If someone needs partial record detection, they can do it ahead of time. We're trying to make REBOL only generate errors when it's useful to do so. It was not deemed useful in this case. |
older newer | first last |