On Sat, May 9, 2009 at 7:36 AM, Gil Barmwater <[email protected]> wrote:
> Having almost completed my presntation on the new stuff in 4.0.0, I just
> have four more questions.
>
> 1) The ReadMe says "The MutableBuffer class has been enhanced so that it
> has most, if not all, of the methods of the String class."  Do we know
> of any methods that are NOT in both or should it say "...has all..."?

There are quite a few that were not implemented becaus they really did
not make much sense for a mutablebuffer.  For example, the arithmetic
functions (min, max, sign, abs), the various conversion functions
(d2c(), etc.), datatype().  There might be others, but those are the
ones the spring immediately to mind.  I believe the set of "string"
functions is fairly complete, but even here there are exceptions
(abbrev(), the base64 encode/decode).

>
> 2) Can you explain when one would use the String Class replaceAt()
> method rather than overlay() or changeStr()?

Ok, here's a souce string"  "aaaaaaaaaaaaaaaaaaaaaaaaa"

Use chagestr to replace the characters starting at position 6 for 5
characters with "123"

Now try this with overlay()

Now do you see the benefit of replaceAt() :-)

To do this operation without replaceAt requests two substrings (or a
parse operation, which is the equivalent) + two concatenate
operations.  This requires the creation of 4 objects to get one
result.  This can also be done with a delstr()/insert() combo, which
only creates one extra object, but replaceAt() does it in one shot.
replaceAt() is particularly useful with mutableBuffer if you're using
it to make editing-type operations.


>
> 3) While I believe I understand the difference between a Table and an
> IdentityTable, can you give me an example of when I would need to use an
> IdentityTable rather than a Table?

IdentityTable is used mostly for situations you need to keep track of
actual object instances rather than relying on "equality", which may
not be the same.  The interpreter uses this internally, for example,
to keep track of the objects that have a pending uninit() operation.
In this situation, it is important that the table be able to use the
object as an index even if the "==" method of the object claims that
this object is "equal" to another object.

At lot of the uses of this are pretty esoteric....but when you need
it, you need it!

>
> 4) How are the new utility classes for sockets, MIME and SMTP provided,
> i.e. where are they in the distribution, and what does one need to do to
> make use of them?

David will need to ansewr that one.

>
> Once I make the updates based on the answers, I could send an outline
> form of my presetation to anyone interested for review if you'd have
> time.  Want to make sure I got it right!

Yes, please send me a copy.

> --
> Gil Barmwater
>
> ------------------------------------------------------------------------------
> The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
> production scanning environment may not be a perfect world - but thanks to
> Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
> Series Scanner you'll get full speed at 300 dpi even with all image
> processing features enabled. http://p.sf.net/sfu/kodak-com
> _______________________________________________
> Oorexx-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to