World: r3wp
[!REBOL3]
older newer | first last |
Steeve 16-Feb-2010 [840] | Nice, here i go for binaries. |
Gregg 16-Feb-2010 [841] | Andreas, what about something like one of these: - "Returns TRUE if the values are strictly equal and of the same datatype." - "Returns TRUE if the values are strictly equal and the same datatype." - "Returns TRUE if the values are strictly equal, including their datatype." - "Returns TRUE if the values are strictly equal, including datatype." We can argue that just adding the word "strictly" doesn't help, but then the help for EQUAL? isn't very helpful either. :-) My thinking here is that there are a number of things that may seem confusing about strict equality, and we can't address them all in the doc string. Case sensitivity is important, and if we want to single that out, I'm OK with it, but might there be other cases as well? >> strict-equal? d1 d2 == true >> d1 == 16-Feb-2010/13:25:30-7:00 >> d2 == 16-Feb-2010/14:25:30-6:00 >> equal? [a] [A] == true >> strict-equal? [a] [A] == false >> strict-equal? 'a 'A == true R3 addresses those cases, but are there others? What about user defined types (not sure what the status or goal is on utype! values at this point)? |
Andreas 16-Feb-2010 [842x4] | Yes, just rephrasing the strict-equal? docstring as "Returns TRUE if the values are strictly equal." woul also be an option |
I would then drop mentioning datatype equality, so that an interested user will have to consult more detailed documentation on how strict equality is defined | |
And yes, all the cases you mention no longer hold for R3. | |
But actually, I quite like "Returns TRUE if the values are strictly equal." This does not lead a user who reads only the docstring to wrong conclusions. | |
Sunanda 16-Feb-2010 [846] | Request for help received via REBOL.org's feedback form. If you can help, please post here and I'll forward him the URL of the archive: =============== Using Rebol 3.0 Alpha, 2.100.97.3.1, how can I save the value removed from a series when I use the remove function? See example 1 below; I would like to be able to save the value "red" in a variable. Can a "parse" statement be used instead of the remove. How would it be coded? See example 2 below. Should'nt the value be "red" example 1 text: "redblueyellow" == "redblueyellow" remove/part text 3 ==text: "blueyellow" Example 2 saved-text: "redblueyellow" == "redblueyellow" difference saved-text text == "d" I tried this an hour later and got == "rd" =============== |
Andreas 16-Feb-2010 [847x3] | Save the value: use TAKE instead of REMOVE |
And DIFFERENCE treats the two strings as _sets_ of characters (i.e. they are internally UNIQUEd) and returns only those characters which are not present in both strings. | |
Here's an example for TAKE: | |
Sunanda 16-Feb-2010 [850] | Is there a useful DIFF-type function anywhere that extracts the substring differences between strings? |
Andreas 16-Feb-2010 [851x2] | >> text: "redblueyellow" == "redblueyellow" >> take/part text 3 == "red" >> text == "blueyellow" |
IIRC Gabriele and Bohdan both have provided diff-style scripts for R2 in the script library. | |
BrianH 16-Feb-2010 [853] | Strictly per current behavior of R3, just tested: - For decimal! it means more precise comparison (17 digits versus 15 by default, also with EQUIV?). - For string types it means case-sensitivity. - For word types it means case-sensitivity and binding (only binding for EQUIV?). - For block types it means strictly equivalent contents. This seems reasonable to me, but it should be documented. I'll review the ticket mentioned above. |
Andreas 16-Feb-2010 [854x2] | Thanks Brian, much appreciated. |
I updated the docbase "comparisons" page to reflect this: http://www.rebol.net/wiki/Comparisons#EQUAL.3F | |
BrianH 16-Feb-2010 [856] | Added a comment to that ticket, with a suggestion for doc strings that fit the limit: - STRICT-EQUAL? "Returns TRUE if the values are equal and of the same datatype, case." - STRICT-NOT-EQUAL? "Returns TRUE if the values are equal and of the same datatype, case." Nice, consise, and 68 and 69 characters, respectively, no problem. You can even change "datatype, case" to "datatype & case". |
Graham 16-Feb-2010 [857x2] | eh? |
STRICT-EQUAL? == STRICT-NOT-EQUAL? | |
BrianH 16-Feb-2010 [859x2] | Sorry, replace TRUE with FALSE (as I did in the comment). |
That was a typo above. | |
Graham 16-Feb-2010 [861] | why do we need both? |
BrianH 16-Feb-2010 [862x2] | Because != and <> need a function to redirect to. |
And you can use STRICT-NOT-EQUAL? as a function value if need be, but not NOT STRICT-EQUAL?. | |
Graham 16-Feb-2010 [864x2] | maybe we should dispense with all infix operations |
make life very messy! | |
BrianH 16-Feb-2010 [866] | People like them. And they'll like them more when you can make user-defined op! functions. |
Gregg 17-Feb-2010 [867] | Returns TRUE if the values are equal and of the same datatype, case. That ending doesn't read very well to me. |
BrianH 17-Feb-2010 [868] | Like I said, ", " could be replaced with " & " and it would do as well. Would you like that? Either is considered standard English... |
Robert 17-Feb-2010 [869] | Would it be possible to make R3 a Windows-Host-Script language? |
BrianH 17-Feb-2010 [870x3] | Yes, but it wouldn't be useful unril we have user-defined datatypes (to wrap the OLE objects in). |
unril -> until | |
There might be a workaround for that with extensions, but I'd wait until we have the next host kit before making an ActiveScripting host, so we can use embedded extensions and the revamped command! type. | |
Robert 17-Feb-2010 [873] | Ok. IMO we need callbacks as well. And a good documentation how this will be integrated into the event system. |
BrianH 17-Feb-2010 [874x2] | The plan has always been to implement callbacks and integrate them into the event system through devices. |
But you never know until it happens. | |
Robert 17-Feb-2010 [876x2] | Is there a way to get the literal of a function parameter? Example: "my-funct my-data" and "my-funct: funct [parameter]..." Can I get 'my-data within my-funct? |
In R2 I could write: in object 'self, but no longer in R3. What's the equivalent in R3? | |
Pekr 17-Feb-2010 [878] | Those things shold be defined by Carl ASAP, as those are pretty fundamental. We talk about u-types for ages, but noone knows, how in fact those are they going to be implemented or how they will work in the end. Ditto for callbacks :-) |
BrianH 17-Feb-2010 [879x4] | BIND? - and it works in R2 as well. |
That's the equivalent to in object 'self, bind? object. | |
As for your first question, try a lit-word parameter like this: my-funct: funct ['parameter]... | |
Unless you want no evaluation at all, not just for words, then use a get-word parameter. Yes, that's an awkward way to refer to it - it's already been reported. | |
Ladislav 18-Feb-2010 [883] | In R2 I could write: in object 'self, but no longer in R3. What's the equivalent in R3? - I do not understand all that "harakiri" going on in R3 with 'self. Nevertheless, the expression: first bind [self] object works |
Paul 18-Feb-2010 [884] | Self is still there but within its own context which is the way it should be. |
Ladislav 18-Feb-2010 [885] | Nevertheless, I think, that the fact, that first bind [self] object] works, while in object 'self does not, is at least surprising. What is that good for? |
Paul 18-Feb-2010 [886] | Probably to do with the new changes allowing us to protect object code. |
Ladislav 18-Feb-2010 [887] | Inconsistent |
Paul 18-Feb-2010 [888] | what is? - be more specific. |
Ladislav 18-Feb-2010 [889] | See above |
older newer | first last |