New methods for the String class

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
36 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

philippeback
Getting to appreciate all of those facets of Smalltalk takes time and dedication. So much to learn.

Anyway, the journey is rewarding.

I do not think that the current education system is producing people who want to explore etc. 

My wife is a maths teacher (for teens for the two years before university, 6+2 hours of math a week) and well, their attitude isn't too encouraging (there are 2 out of 30 who would be picking this up).

This isn't deterring me from exposing them to Pharo tough.

Phil





On Tue, Feb 25, 2014 at 12:10 AM, Eliot Miranda <[hidden email]> wrote:



On Mon, Feb 24, 2014 at 2:47 PM, Norbert Hartl <[hidden email]> wrote:

Am 24.02.2014 um 23:09 schrieb Eliot Miranda <[hidden email]>:


On Mon, Feb 24, 2014 at 1:58 PM, Norbert Hartl <[hidden email]> wrote:

Am 24.02.2014 um 22:19 schrieb Eliot Miranda <[hidden email]>:

On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel<[hidden email]> wrote:
Would be great to have: ‘ConfigurationOfRoassal’ chopCamel  => #(‘Configuration’ ‘Of’ ‘Roassal’).

'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')

It's too trivial, surely.
 
No it is not. Because you have to know about it. Thanks for that one. 

"I learned something today[tm]“

But the real things to learn are the Method Finder and the browser.  Adding a lot of names that are known to those that know some scripting language du jour, but are incomprehensible to me, and no doubt many others, is not doing anything for anybody, except trying to be pointlessly cool.  Trying to encourage programmers to use the ability of the system to self-introspect and self-document is giving them general skills they can build upon.  So a project to improve the UI so that programmers are led to tools they can use for discovery seems worth-while to me, while adding yet more short-hand to hand-hold the ignorant isn't helping, IMHO.

I agree that adding a lot of names is not helping because that might be the reason I didn’t know that selector. What kind of selectors are the right ones I’m not the one to judge. But to be honest if I think about a collection the selector #piecesCutWhere: is not intuitive to me, too. So I’m glad you brought that to my attention. 

I get that.  All naming is difficult.  That there are many different ways to say the same thing in natural language is I think a common problem to many languages, especially English.  Just remember the last time you tried to do some free text search for some phrase.  Takes me ages to find old messages in email.  So even if method is well-named, it likely has only one of a number of plausible good names.  And if it has a usefully short nickname (look at unix and lisp, cat & cdr etc) then it must likely be learned by rote.

So the issue is not naming; it is how to /find/ functionality.  And so in Smalltalk the issue is how to encourage programmers to go find things.  The MessageFinder is amazing.  But people don't use it.  If they did no one would be proposing to add chomp to the standard library.

<old man alert>When I learnt Smalltalk there were several factors that made it easy for me to learn.  It was much smaller.  I thought it was cool.  I had the time to learn it.  But when I learnt it the browser was simple, refactoring hadn't been invented, there was no MethodFinder, and there was almost _no_ documentation.  Basically I learnt it by playing with it, exploring it, reading it, building it.</old man alert>

So why aren't people taking the time to learn it today?  Is it the system's fault?  Is it too big?  Are the readable parts of the system non-existent, or too difficult to find?  Is it some cultural change that means people can't learn such systems any more? Was it only learnable by a few people back in the day and it remains unsuitable for a mass audience?  Is it impossible to design user interfaces that invite exploration?  Do people no longer want to play with the system but instead want to use it to get something done fast, and can't spare the time to learn it properly?  Are computing languages like English, and every programming language must adopt the conventions and vocabulary of the most popular?  Is inheritance too hard to navigate to discover that SequenceableCollection has lots of useful String mehtods, and some useful methods on ByteString are in String, etc?

I think suggestions that one add functionality that already exists in the system point to some interesting issues.  And I think someone with an HCI or UI bent might get somewhere approaching these questions systematically.

  
thanks again,

you're welcome :-)
 

Norbert


Norbert


Alexandre


On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]> wrote:

> Hi to all,
>
> As you may know I'm working on in some improvements for the String class. Until now I implemented some missing tests. Right now I'm looking forward to add new methods that could be useful based on Ruby API (http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the methods that I'm planning to implement:
>
>       • chomp(separator=$/) -> new_str
>       • chop() -> new_str
>       • ljust(integer, padstr='') ->new_str
>       • next -> new_str
>       • partition(sep) -> [head, sep, tail]
>
> Could you help to find out if these methods are already available for the String class?
>
> If you have any idea of new methods for the string class, will be really welcome.
>
> --
> Cheers,
> Daniela Meneses

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.







-- 
best,
Eliot




--
best,
Eliot




--
best,
Eliot

Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

sebastianconcept@gmail.co
In reply to this post by Eliot Miranda-2
First time I heard of #piecesCutWhere:

:D



On Feb 24, 2014, at 6:19 PM, Eliot Miranda <[hidden email]> wrote:

piecesCutWhere

Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

sebastianconcept@gmail.co
In reply to this post by pharo4Stef@free.fr
cool!

Reviewing String is a chance to provide a clean, brief, readable API for what’s probably the most popular set of needs.

If you’re starting with computing it wont take too long to try to modify strings and get value from it. So doing more with the tool (instead of abandoning it for an easier alternative) is more likely. If you’re a veteran engineer you will face that too and end up appreciating the convenience. 

If you can do that in intuitive english instead of cryptic-memory-addicted things like printlf, etc then it’s an all win.

Also wanted to say that you probably developed your most successful strategy but there is no single path or way to explore a system. Nature loves to try everything, all the paths, and select the most universally convenient.

The more bridges we build the better* 

So, if the API additions are intuitive, then I’m all for it

*because, among other things, we would make possible the success of less myopic software models / views of the world / future innovations




On Feb 25, 2014, at 3:48 AM, Pharo4Stef <[hidden email]> wrote:

this is exactly the point of the project.
Rethinking the API.
And writing a systematic analysis of the situation so that we can get an overview.

Stef

Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

philippeback
Yes but... in Pharo strings are collections and a ton of things can be done with collections already.
Other languages have more "basic" strings and are cutting them in all ways possible but not as collections.

things like detect, inject etc are not really in the repertoire of other languages. Okay, there are chop, split, ... but these are pretty basic things.

Why not have a test suite with a test for demonstrating how to do these things with the platform we do have?

e.g. testChomp, testSplit, ...all put in  a Tests-Strings-RubyStyle or Tests-Strings-PythonStyle packages?

And like there are Seaside-Pharo-XXX packages, why not a String-Ruby-XXXX thing ?


Phil




On Tue, Feb 25, 2014 at 12:39 PM, Sebastian Sastre <[hidden email]> wrote:
cool!

Reviewing String is a chance to provide a clean, brief, readable API for what’s probably the most popular set of needs.

If you’re starting with computing it wont take too long to try to modify strings and get value from it. So doing more with the tool (instead of abandoning it for an easier alternative) is more likely. If you’re a veteran engineer you will face that too and end up appreciating the convenience. 

If you can do that in intuitive english instead of cryptic-memory-addicted things like printlf, etc then it’s an all win.

Also wanted to say that you probably developed your most successful strategy but there is no single path or way to explore a system. Nature loves to try everything, all the paths, and select the most universally convenient.

The more bridges we build the better* 

So, if the API additions are intuitive, then I’m all for it

*because, among other things, we would make possible the success of less myopic software models / views of the world / future innovations




On Feb 25, 2014, at 3:48 AM, Pharo4Stef <[hidden email]> wrote:

this is exactly the point of the project.
Rethinking the API.
And writing a systematic analysis of the situation so that we can get an overview.

Stef


Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

hernanmd



2014-02-25 8:49 GMT-03:00 [hidden email] <[hidden email]>:
Yes but... in Pharo strings are collections and a ton of things can be done with collections already.
Other languages have more "basic" strings and are cutting them in all ways possible but not as collections.

things like detect, inject etc are not really in the repertoire of other languages. Okay, there are chop, split, ... but these are pretty basic things.

Why not have a test suite with a test for demonstrating how to do these things with the platform we do have?

e.g. testChomp, testSplit, ...all put in  a Tests-Strings-RubyStyle or Tests-Strings-PythonStyle packages?

And like there are Seaside-Pharo-XXX packages, why not a String-Ruby-XXXX thing ?


Yes, that is a really good idea.

Hernán


Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Stephan Eggermont-3
In reply to this post by Daniela Meneses
Eliot wrote
>But the real things to learn are the Method Finder and the browser.  

In case you are wondering why no beginner seems to know about Method Finder:
Your post made me take a look at it for the first time (after near a decade of
smalltalk). Interesting class comment. I’m pretty sure no beginner will understand
it. The first thing I did was google for some blog posts and videos on it.
I wouldn’t have bothered if you hadn’t been so clear about having to learn it.
A much more simple example is needed (to start with). And that only helps
after discovering that there is a tool like that.

>So why aren't people taking the time to learn it today?  Is it the system's fault?  Is it too big?  Are the readable parts of the system non-existent, or >too difficult to find?  Is it some cultural change that means people can't learn such systems any more? Was it only learnable by a few people back >in the day and it remains unsuitable for a mass audience?  Is it impossible to design user interfaces that invite exploration?  Do people no longer >want to play with the system but instead want to use it to get something done fast, and can't spare the time to learn it properly?  Are computing >languages like English, and every programming language must adopt the conventions and vocabulary of the most popular?  Is inheritance too >hard to navigate to discover that SequenceableCollection has lots of useful String mehtods, and some useful methods on ByteString are in String, >etc?

The system is much larger than it used to be. A larger system is much more difficult to navigate. And how should you learn it?
Which subset of concepts should you learn, and in which order? Pharo by Example targets more new programmers than
switching ones. Tools that were added are almost by definition designed for experienced users. They don’t care
enough about discoverability, as they know where they are. Inheritance is not so much a problem, that is a well known concept
in mainstream languages

Stephan
Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Camillo Bruni-3
In reply to this post by hernanmd

On 2014-02-26, at 03:53, Hernán Morales Durand <[hidden email]> wrote:

>
>
>
> 2014-02-25 8:49 GMT-03:00 [hidden email] <[hidden email]>:
> Yes but... in Pharo strings are collections and a ton of things can be done with collections already.
> Other languages have more "basic" strings and are cutting them in all ways possible but not as collections.
>
> things like detect, inject etc are not really in the repertoire of other languages. Okay, there are chop, split, ... but these are pretty basic things.
>
> Why not have a test suite with a test for demonstrating how to do these things with the platform we do have?
>
> e.g. testChomp, testSplit, ...all put in  a Tests-Strings-RubyStyle or Tests-Strings-PythonStyle packages?
>
> And like there are Seaside-Pharo-XXX packages, why not a String-Ruby-XXXX thing ?
>
>
> Yes, that is a really good idea.
indeed, we can do it in two steps:

1. create the ruby / pythonic compatibility packages (blindly ignoring any pharo conventions)
2. see which methods (if any) actually make sense to steal

signature.asc (457 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

philippeback
Which Ruby guru an Python guru is going to give it a shot? [I am a Tcl guy... hey, that's an everything is a string language... ] Oh well, I started something:


So, who is taking StringRubyShim and StringPythonShim :-p ?

Phil



On Wed, Feb 26, 2014 at 5:09 PM, Camillo Bruni <[hidden email]> wrote:

On 2014-02-26, at 03:53, Hernán Morales Durand <[hidden email]> wrote:

>
>
>
> 2014-02-25 8:49 GMT-03:00 [hidden email] <[hidden email]>:
> Yes but... in Pharo strings are collections and a ton of things can be done with collections already.
> Other languages have more "basic" strings and are cutting them in all ways possible but not as collections.
>
> things like detect, inject etc are not really in the repertoire of other languages. Okay, there are chop, split, ... but these are pretty basic things.
>
> Why not have a test suite with a test for demonstrating how to do these things with the platform we do have?
>
> e.g. testChomp, testSplit, ...all put in  a Tests-Strings-RubyStyle or Tests-Strings-PythonStyle packages?
>
> And like there are Seaside-Pharo-XXX packages, why not a String-Ruby-XXXX thing ?
>
>
> Yes, that is a really good idea.

indeed, we can do it in two steps:

1. create the ruby / pythonic compatibility packages (blindly ignoring any pharo conventions)
2. see which methods (if any) actually make sense to steal

Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Hannes Hirzel
In reply to this post by Eliot Miranda-2
On 2/24/14, Eliot Miranda <[hidden email]> wrote:

> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
> <[hidden email]>wrote:
>
>> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>> #('Configuration' 'Of' 'Roassal').
>>
>
> 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>
> It's too trivial, surely.

Nice piece of code. Not sure if it is too trivial.

I have never seen #piecesCutWhere before. It is not in Cuis and
Squeak. Must be a new Pharo method.

--Hannes


>
>
>>
>> Alexandre
>>
>>
>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>> wrote:
>>
>> > Hi to all,
>> >
>> > As you may know I'm working on in some improvements for the String
>> class. Until now I implemented some missing tests. Right now I'm looking
>> forward to add new methods that could be useful based on Ruby API (
>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>> methods that I'm planning to implement:
>> >
>> >       * chomp(separator=$/) -> new_str
>> >       * chop() -> new_str
>> >       * ljust(integer, padstr='') ->new_str
>> >       * next -> new_str
>> >       * partition(sep) -> [head, sep, tail]
>> >
>> > Could you help to find out if these methods are already available for
>> the String class?
>> >
>> > If you have any idea of new methods for the string class, will be
>> > really
>> welcome.
>> >
>> > --
>> > Cheers,
>> > Daniela Meneses
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>
>
> --
> best,
> Eliot
>

Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Tudor Girba-2
Indeed, it's a new addition to Pharo (originally developed in Moose).

Doru


On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote:
On 2/24/14, Eliot Miranda <[hidden email]> wrote:
> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
> <[hidden email]>wrote:
>
>> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>> #('Configuration' 'Of' 'Roassal').
>>
>
> 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>
> It's too trivial, surely.

Nice piece of code. Not sure if it is too trivial.

I have never seen #piecesCutWhere before. It is not in Cuis and
Squeak. Must be a new Pharo method.

--Hannes


>
>
>>
>> Alexandre
>>
>>
>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>> wrote:
>>
>> > Hi to all,
>> >
>> > As you may know I'm working on in some improvements for the String
>> class. Until now I implemented some missing tests. Right now I'm looking
>> forward to add new methods that could be useful based on Ruby API (
>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>> methods that I'm planning to implement:
>> >
>> >       * chomp(separator=$/) -> new_str
>> >       * chop() -> new_str
>> >       * ljust(integer, padstr='') ->new_str
>> >       * next -> new_str
>> >       * partition(sep) -> [head, sep, tail]
>> >
>> > Could you help to find out if these methods are already available for
>> the String class?
>> >
>> > If you have any idea of new methods for the string class, will be
>> > really
>> welcome.
>> >
>> > --
>> > Cheers,
>> > Daniela Meneses
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>
>
> --
> best,
> Eliot
>




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Hannes Hirzel
In reply to this post by Hannes Hirzel
Where are the String extension packages available which were mentioned?

1.  Olivier Auverlot has all kind of string distance.
2. Hernan Morales has also a package extending string.
3.  ... more?

On 7/30/15, H. Hirzel <[hidden email]> wrote:

> On 2/24/14, Eliot Miranda <[hidden email]> wrote:
>> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
>> <[hidden email]>wrote:
>>
>>> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>>> #('Configuration' 'Of' 'Roassal').
>>>
>>
>> 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
>> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>>
>> It's too trivial, surely.
>
> Nice piece of code. Not sure if it is too trivial.
>
> I have never seen #piecesCutWhere before. It is not in Cuis and
> Squeak. Must be a new Pharo method.
>
> --Hannes
>
>
>>
>>
>>>
>>> Alexandre
>>>
>>>
>>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>>> wrote:
>>>
>>> > Hi to all,
>>> >
>>> > As you may know I'm working on in some improvements for the String
>>> class. Until now I implemented some missing tests. Right now I'm looking
>>> forward to add new methods that could be useful based on Ruby API (
>>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>>> methods that I'm planning to implement:
>>> >
>>> >       * chomp(separator=$/) -> new_str
>>> >       * chop() -> new_str
>>> >       * ljust(integer, padstr='') ->new_str
>>> >       * next -> new_str
>>> >       * partition(sep) -> [head, sep, tail]
>>> >
>>> > Could you help to find out if these methods are already available for
>>> the String class?
>>> >
>>> > If you have any idea of new methods for the string class, will be
>>> > really
>>> welcome.
>>> >
>>> > --
>>> > Cheers,
>>> > Daniela Meneses
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> best,
>> Eliot
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

stepharo
I did not know but looking around I found
     - http://smalltalkhub.com/#!/~olivierauverlot/Phonetix
     - http://smalltalkhub.com/#!/~hernan/StringExtensions

Stef

Le 30/7/15 22:34, H. Hirzel a écrit :

> Where are the String extension packages available which were mentioned?
>
> 1.  Olivier Auverlot has all kind of string distance.
> 2. Hernan Morales has also a package extending string.
> 3.  ... more?
>
> On 7/30/15, H. Hirzel <[hidden email]> wrote:
>> On 2/24/14, Eliot Miranda <[hidden email]> wrote:
>>> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
>>> <[hidden email]>wrote:
>>>
>>>> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>>>> #('Configuration' 'Of' 'Roassal').
>>>>
>>> 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
>>> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>>>
>>> It's too trivial, surely.
>> Nice piece of code. Not sure if it is too trivial.
>>
>> I have never seen #piecesCutWhere before. It is not in Cuis and
>> Squeak. Must be a new Pharo method.
>>
>> --Hannes
>>
>>
>>>
>>>> Alexandre
>>>>
>>>>
>>>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>>>> wrote:
>>>>
>>>>> Hi to all,
>>>>>
>>>>> As you may know I'm working on in some improvements for the String
>>>> class. Until now I implemented some missing tests. Right now I'm looking
>>>> forward to add new methods that could be useful based on Ruby API (
>>>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>>>> methods that I'm planning to implement:
>>>>>        * chomp(separator=$/) -> new_str
>>>>>        * chop() -> new_str
>>>>>        * ljust(integer, padstr='') ->new_str
>>>>>        * next -> new_str
>>>>>        * partition(sep) -> [head, sep, tail]
>>>>>
>>>>> Could you help to find out if these methods are already available for
>>>> the String class?
>>>>> If you have any idea of new methods for the string class, will be
>>>>> really
>>>> welcome.
>>>>> --
>>>>> Cheers,
>>>>> Daniela Meneses
>>>> --
>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>> Alexandre Bergel  http://www.bergel.eu
>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> best,
>>> Eliot
>>>
>


Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Levente Uzonyi-2
In reply to this post by Tudor Girba-2
Erm. Eliot added these methods to Squeak in 2012.

Levente

On Thu, 30 Jul 2015, Tudor Girba wrote:

> Indeed, it's a new addition to Pharo (originally developed in Moose).
> Doru
>
>
> On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote:
>       On 2/24/14, Eliot Miranda <[hidden email]> wrote:
>       > On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
>       > <[hidden email]>wrote:
>       >
>       >> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>       >> #('Configuration' 'Of' 'Roassal').
>       >>
>       >
>       > 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
>       > isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>       >
>       > It's too trivial, surely.
>
>       Nice piece of code. Not sure if it is too trivial.
>
>       I have never seen #piecesCutWhere before. It is not in Cuis and
>       Squeak. Must be a new Pharo method.
>
>       --Hannes
>
>
>       >
>       >
>       >>
>       >> Alexandre
>       >>
>       >>
>       >> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>       >> wrote:
>       >>
>       >> > Hi to all,
>       >> >
>       >> > As you may know I'm working on in some improvements for the String
>       >> class. Until now I implemented some missing tests. Right now I'm looking
>       >> forward to add new methods that could be useful based on Ruby API (
>       >> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>       >> methods that I'm planning to implement:
>       >> >
>       >> >       * chomp(separator=$/) -> new_str
>       >> >       * chop() -> new_str
>       >> >       * ljust(integer, padstr='') ->new_str
>       >> >       * next -> new_str
>       >> >       * partition(sep) -> [head, sep, tail]
>       >> >
>       >> > Could you help to find out if these methods are already available for
>       >> the String class?
>       >> >
>       >> > If you have any idea of new methods for the string class, will be
>       >> > really
>       >> welcome.
>       >> >
>       >> > --
>       >> > Cheers,
>       >> > Daniela Meneses
>       >>
>       >> --
>       >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>       >> Alexandre Bergel  http://www.bergel.eu
>       >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>       >>
>       >>
>       >>
>       >>
>       >>
>       >
>       >
>       > --
>       > best,
>       > Eliot
>       >
>
>
>
>
> --
> www.tudorgirba.com
>
> "Every thing has its own flow"
>
>
Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Eliot Miranda-2
In reply to this post by Tudor Girba-2


Sent from my iPhone

On Jul 30, 2015, at 1:34 PM, Tudor Girba <[hidden email]> wrote:

Indeed, it's a new addition to Pharo (originally developed in Moose).

piecesCutWhere: is by Travis Griggs and comes from VisualWorks


Doru


On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote:
On 2/24/14, Eliot Miranda <[hidden email]> wrote:
> On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
> <[hidden email]>wrote:
>
>> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>> #('Configuration' 'Of' 'Roassal').
>>
>
> 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
> isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>
> It's too trivial, surely.

Nice piece of code. Not sure if it is too trivial.

I have never seen #piecesCutWhere before. It is not in Cuis and
Squeak. Must be a new Pharo method.

--Hannes


>
>
>>
>> Alexandre
>>
>>
>> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>> wrote:
>>
>> > Hi to all,
>> >
>> > As you may know I'm working on in some improvements for the String
>> class. Until now I implemented some missing tests. Right now I'm looking
>> forward to add new methods that could be useful based on Ruby API (
>> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>> methods that I'm planning to implement:
>> >
>> >       * chomp(separator=$/) -> new_str
>> >       * chop() -> new_str
>> >       * ljust(integer, padstr='') ->new_str
>> >       * next -> new_str
>> >       * partition(sep) -> [head, sep, tail]
>> >
>> > Could you help to find out if these methods are already available for
>> the String class?
>> >
>> > If you have any idea of new methods for the string class, will be
>> > really
>> welcome.
>> >
>> > --
>> > Cheers,
>> > Daniela Meneses
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>
>
> --
> best,
> Eliot
>




--

"Every thing has its own flow"
Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Eliot Miranda-2
In reply to this post by Levente Uzonyi-2


Sent from my iPhone

> On Jul 30, 2015, at 2:05 PM, Levente Uzonyi <[hidden email]> wrote:
>
> Erm. Eliot added these methods to Squeak in 2012.

Right.  I reimplemented Travis Griggs original from VisualWorks.

>
> Levente
>
>> On Thu, 30 Jul 2015, Tudor Girba wrote:
>>
>> Indeed, it's a new addition to Pharo (originally developed in Moose).
>> Doru
>> On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote:
>>      On 2/24/14, Eliot Miranda <[hidden email]> wrote:
>>      > On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
>>      > <[hidden email]>wrote:
>>      >
>>      >> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>>      >> #('Configuration' 'Of' 'Roassal').
>>      >>
>>      >
>>      > 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
>>      > isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>>      >
>>      > It's too trivial, surely.
>>
>>      Nice piece of code. Not sure if it is too trivial.
>>
>>      I have never seen #piecesCutWhere before. It is not in Cuis and
>>      Squeak. Must be a new Pharo method.
>>
>>      --Hannes
>>
>>      >
>>      >
>>      >>
>>      >> Alexandre
>>      >>
>>      >>
>>      >> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>>      >> wrote:
>>      >>
>>      >> > Hi to all,
>>      >> >
>>      >> > As you may know I'm working on in some improvements for the String
>>      >> class. Until now I implemented some missing tests. Right now I'm looking
>>      >> forward to add new methods that could be useful based on Ruby API (
>>      >> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>>      >> methods that I'm planning to implement:
>>      >> >
>>      >> >       * chomp(separator=$/) -> new_str
>>      >> >       * chop() -> new_str
>>      >> >       * ljust(integer, padstr='') ->new_str
>>      >> >       * next -> new_str
>>      >> >       * partition(sep) -> [head, sep, tail]
>>      >> >
>>      >> > Could you help to find out if these methods are already available for
>>      >> the String class?
>>      >> >
>>      >> > If you have any idea of new methods for the string class, will be
>>      >> > really
>>      >> welcome.
>>      >> >
>>      >> > --
>>      >> > Cheers,
>>      >> > Daniela Meneses
>>      >>
>>      >> --
>>      >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>      >> Alexandre Bergel  http://www.bergel.eu
>>      >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>      >>
>>      >>
>>      >>
>>      >>
>>      >>
>>      >
>>      >
>>      > --
>>      > best,
>>      > Eliot
>>      >
>> --
>> www.tudorgirba.com
>> "Every thing has its own flow"

Reply | Threaded
Open this post in threaded view
|

Re: New methods for the String class

Tudor Girba-2
Indeed. I just checked. We ported it to Pharo when we moved Moose from VW around 2008/2009 :). My bad.

Cheers,
Doru


On Fri, Jul 31, 2015 at 5:33 PM, Eliot Miranda <[hidden email]> wrote:


Sent from my iPhone

> On Jul 30, 2015, at 2:05 PM, Levente Uzonyi <[hidden email]> wrote:
>
> Erm. Eliot added these methods to Squeak in 2012.

Right.  I reimplemented Travis Griggs original from VisualWorks.

>
> Levente
>
>> On Thu, 30 Jul 2015, Tudor Girba wrote:
>>
>> Indeed, it's a new addition to Pharo (originally developed in Moose).
>> Doru
>> On Thu, Jul 30, 2015 at 10:32 PM, H. Hirzel <[hidden email]> wrote:
>>      On 2/24/14, Eliot Miranda <[hidden email]> wrote:
>>      > On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel
>>      > <[hidden email]>wrote:
>>      >
>>      >> Would be great to have: 'ConfigurationOfRoassal' chopCamel  =>
>>      >> #('Configuration' 'Of' 'Roassal').
>>      >>
>>      >
>>      > 'ConfigurationOfRoassal'  piecesCutWhere: [:a :b| a isLowercase and: [b
>>      > isUppercase]] an OrderedCollection('Configuration' 'Of' 'Roassal')
>>      >
>>      > It's too trivial, surely.
>>
>>      Nice piece of code. Not sure if it is too trivial.
>>
>>      I have never seen #piecesCutWhere before. It is not in Cuis and
>>      Squeak. Must be a new Pharo method.
>>
>>      --Hannes
>>
>>      >
>>      >
>>      >>
>>      >> Alexandre
>>      >>
>>      >>
>>      >> On Feb 24, 2014, at 2:30 PM, Daniela Meneses <[hidden email]>
>>      >> wrote:
>>      >>
>>      >> > Hi to all,
>>      >> >
>>      >> > As you may know I'm working on in some improvements for the String
>>      >> class. Until now I implemented some missing tests. Right now I'm looking
>>      >> forward to add new methods that could be useful based on Ruby API (
>>      >> http://www.ruby-doc.org/core-2.1.0/String.html). These are a few of the
>>      >> methods that I'm planning to implement:
>>      >> >
>>      >> >       * chomp(separator=$/) -> new_str
>>      >> >       * chop() -> new_str
>>      >> >       * ljust(integer, padstr='') ->new_str
>>      >> >       * next -> new_str
>>      >> >       * partition(sep) -> [head, sep, tail]
>>      >> >
>>      >> > Could you help to find out if these methods are already available for
>>      >> the String class?
>>      >> >
>>      >> > If you have any idea of new methods for the string class, will be
>>      >> > really
>>      >> welcome.
>>      >> >
>>      >> > --
>>      >> > Cheers,
>>      >> > Daniela Meneses
>>      >>
>>      >> --
>>      >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>      >> Alexandre Bergel  http://www.bergel.eu
>>      >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>      >>
>>      >>
>>      >>
>>      >>
>>      >>
>>      >
>>      >
>>      > --
>>      > best,
>>      > Eliot
>>      >
>> --
>> www.tudorgirba.com
>> "Every thing has its own flow"




--

"Every thing has its own flow"
12