It's bad advice in this case, but correctly indicates there is a problem
with your code. See below.

On Thu, Dec 13, 2018 at 8:13 AM Roelof Wobben <r.wob...@home.nl> wrote:

> Hello,
>
> I have this code :
>
>  FindAndDeleteWordsWithForbiddenParts
>     "deletes all the words that contain forbidden parts"
>
>     | result |
>     result := words
>         select: [ :word |
>             [ (forbiddenWords reject: [ :forbidden | '*' , forbidden , '*' 
> match: word ]) isNotEmpty ]
>
> Constructing a pattern and pattern matching is a heavy-handed approach to
find out if a word contains a substring.
I'm not familiar with Pharo's methods, but at the least String inherits
#indexOfSubCollection:startingAt: and probably a number of others. There is
also a good chance String inherits or implements a more specific method
that will test for the presence of a sub-string.

A good piece of advice I once received is (paraphrased as): Spend more time
reading and less time writing. :-)
The deeper a class hierarchy, the greater the chance that the exact thing
you need has already been implemented in the leaf class or its abstraction.

>
>                 on: NotFound
>                 do: [ false ] ].
>     ^ result
>
>
> but I see warnings that I have to use a stream instead of string concentation.
>
> Anyone hints how to do so ?
>
> Roelof
>
>
>

Reply via email to