And looking at this in the code - there are quite a few variations of 
#includes… that I don’t think it makes sense to write the mirror of all of 
them. Not  it is...

> On 18 Mar 2019, at 16:48, Tim Mackinnon <tim@testit.works> wrote:
> 
> Thanks guys - I always learn something new from these threads.
> 
>> On 17 Mar 2019, at 06:56, Richard O'Keefe <rao...@gmail.com 
>> <mailto:rao...@gmail.com>> wrote:
>> 
>> (1) As it happens, my Smalltalk library *does* have
>>     #excludes: and #identityExcludes:
>> (2) The definitions are trivial.
>>     excludes: item
>>       ^(self includes: item) not
>>     identityExcludes: item
>>       ^(self identityIncludes: item) not
>> 
>> If you want to execute aBlock when aString is not all zeros
>> and ones, just do
>>    (aString allSatisfy: [:each | each = $0 or: [each = $1]])
>>      ifFalse: [aBlock value].
>> or
>>    (aString anySatisfy: [:each | each ~= $0 and: [each ~= $1]])
>>      ifTrue: [aBlock value].
>> or
>>    ('01' includesAll: aString) ifFalse: [aBlock value].
>> 
>> 
>> On Sat, 16 Mar 2019 at 11:33, Tim Mackinnon <tim@testit.works 
>> <mailto:tim@testit.works>> wrote:
>> Hi - in my quest to understand the edgier details of Pharo (and Smalltalk) - 
>> and driven by fresh thoughts of completing exercism exercises - I was 
>> surprised to find that there is no #excludes: operation on collection to 
>> mirror the #includes: operation?
>> 
>> I was curious about this - its seems a strange omission?
>> 
>> Of course I can inverse it with not, or do things a different way - but we 
>> have ifTrue: mirrored with ifFalse, empty/notEmpty so am I missing something?
>> 
>> I wanted to write something like
>> 
>> 
>> aString detect: [:c | ($0 to: $1) excludes: c] ifFound: aBlock. (Evaluate a 
>> block if the string isn’t all 0 and 1’s)
>> 
>> 
>> Of course I can write this as:
>> 
>> (aString reject: [:c | c = $0 | c = $1)) ifNotEmpty: aBlock
>> 
>> But as recent messages in this vein have shown me (and taught me lots - 
>> thanks to those answering), the answer is often not what I thought.
>> 
>> Tim
>> 
>> 
> 

Reply via email to