Hi,
I noticed that 'pharo' beginsWith: '' returns false. Is that Ok? I expect that this returns true, because the empty string is a prefix (and suffix) of any other string. Similar behavior exhibits endsWith:. This seems a bug to me. What do you think? In case we acknowledge it's a bug I can post an entry in the issue tracker and tonight upload a SLICE with the fix. Regards, Gabriel _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
I'm not sure, but in ANSI, indexOfSubcollection:startingAt: is defined
as returning 0 (no match) for an empty collection. This doesn't necessarily mean that #beginsWith: needs to return false as well, of course, but it would be another data point. And I just checked VW and it returns true for both #beginsWith: and #endsWith: in this case so that may be an argument the other way (haven't checked Gnu or VA - not sure if they even implement it). Julian 2010/3/4 Gabriel Cotelli <[hidden email]>: > Hi, > > I noticed that > 'pharo' beginsWith: '' > returns false. > > Is that Ok? I expect that this returns true, because the empty string is a > prefix (and suffix) of any other string. > Similar behavior exhibits endsWith:. > > This seems a bug to me. What do you think? > > In case we acknowledge it's a bug I can post an entry in the issue tracker > and tonight upload a SLICE with the fix. > > Regards, > Gabriel > > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Hi,
VA implemented this behavior in the latest releases for Seaside compatibility and their implementation behaves similar to Pharo one. I think that conceptually both methods must return true, but that's my opinion. If we can get to a consensus I can make the necessary changes. So please comment on this!. Thanks, Gabriel On Thu, Mar 4, 2010 at 10:40 AM, Julian Fitzell <[hidden email]> wrote: I'm not sure, but in ANSI, indexOfSubcollection:startingAt: is defined _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
hi gabriel
> Hi, > VA implemented this behavior in the latest releases for Seaside compatibility and their implementation behaves similar to Pharo one. argh :) > I think that conceptually both methods must return true, but that's my opinion. If we can get to a consensus I can make the necessary changes. So please comment on this!. I like your point of view. This is logical. Everything starts with nothing :) > Thanks, > Gabriel > > On Thu, Mar 4, 2010 at 10:40 AM, Julian Fitzell <[hidden email]> wrote: > I'm not sure, but in ANSI, indexOfSubcollection:startingAt: is defined > as returning 0 (no match) for an empty collection. > > This doesn't necessarily mean that #beginsWith: needs to return false > as well, of course, but it would be another data point. And I just > checked VW and it returns true for both #beginsWith: and #endsWith: in > this case so that may be an argument the other way (haven't checked > Gnu or VA - not sure if they even implement it). > > Julian > > 2010/3/4 Gabriel Cotelli <[hidden email]>: > > Hi, > > > > I noticed that > > 'pharo' beginsWith: '' > > returns false. > > > > Is that Ok? I expect that this returns true, because the empty string is a > > prefix (and suffix) of any other string. > > Similar behavior exhibits endsWith:. > > > > This seems a bug to me. What do you think? > > > > In case we acknowledge it's a bug I can post an entry in the issue tracker > > and tonight upload a SLICE with the fix. > > > > Regards, > > Gabriel > > > > > > > > _______________________________________________ > > Pharo-project mailing list > > [hidden email] > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Julian Fitzell-2
Den 04.03.2010 14:40, skrev Julian Fitzell:
> I'm not sure, but in ANSI, indexOfSubcollection:startingAt: is defined > as returning 0 (no match) for an empty collection. > If a string can not contain the empty string, then how can (and does) it start/end with it? IMHO, to be consistent, the set of what I contain should be a strict superset of what I begin/end with. In that regards, according to the ansi-standard, returning false is correct. Cheers, Henry _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
ok see
'' isDifferentFrom: Character space :) Stupid me Stef On Mar 4, 2010, at 3:27 PM, Henrik Johansen wrote: > Den 04.03.2010 14:40, skrev Julian Fitzell: >> I'm not sure, but in ANSI, indexOfSubcollection:startingAt: is defined >> as returning 0 (no match) for an empty collection. >> > If a string can not contain the empty string, then how can (and does) it > start/end with it? > IMHO, to be consistent, the set of what I contain should be a strict > superset of what I begin/end with. > > In that regards, according to the ansi-standard, returning false is correct. > > Cheers, > Henry > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Henrik Sperre Johansen
Hi Henry,
for the ANSI document on indexOfSubcollection:startingAt:, i think that 'aaaaa' indexOfSubcollection: '' startingAt: 1 must return 1, not 0. (and if the argument is empty the starting index must be returned) Message: indexOfSubCollection: targetSequence startingAt: start Synopsis Answer the index of the first element of the receiver which is the start of a subsequence which matches targetSequence. Start searching at index start in the receiver. Answer 0 if no such subsequence is found. Definition: <sequenceReadableCollection> Each subsequence of the receiver starting at index start is checked for a match with targetSequence. To match, each element of a subsequence of the receiver must be equivalent to the corresponding element of targetSequence. Answer the index of the first element which begins a matching subsequence; no further subsequences are considered. Answer 0 if no such subsequence is found in the receiver, or if targetSequence is empty. The elements are traversed in the order specified by the #do: message for the receiver. The problem here is probably that subsequence definition is missing in the standard. If an empty sequence is allowed as argument then I think that the index must be the result. ¿Anybody has a formal definition of subsequence? I don't know if the beginsWith: in SequenceableCollection must return true to #(1 2 3) beginsWith: #(), but for String I still think that must do. Obviously there's some part of the protocol that should remain consistent. I will try to analyze that in deeper detail later. Regards, Gabriel On Thu, Mar 4, 2010 at 11:27 AM, Henrik Johansen <[hidden email]> wrote: Den 04.03.2010 14:40, skrev Julian Fitzell: _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Den 04.03.2010 16:03, skrev Gabriel Cotelli: Message: indexOfSubCollection: targetSequence startingAt: start Start searching at index start in the receiver. Answer 0 if no such*snip* Answer 0 if no such I don't see how that is ambigous regarding whether an empty collection is defined as a subsequence or not. Cheers, Henry _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
ouch! I missed that point from the definition :P ....
Too bad that beginsWith: is not in the standard... I still feel that 'bbb' beginsWith: '' should return true... but it seems to be incompatible with indexOfSubCollection:startingAt: behavior... Gabriel. 2010/3/4 Henrik Johansen <[hidden email]>
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |