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

World: r3wp

[!REBOL3]

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
Paul
18-Feb-2010
[890]
Again, it may have to do with protection features.