ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> perl6-language
perl6-language
Re: Lvalue Str::words iterator
by Ingo Blechschmidt other posts by this author
Jun 15 2005 11:20AM messages near this date
Re: Lvalue Str::words iterator | Re: Lvalue Str::words iterator
Hi,

Juerd wrote:
>  Ingo Blechschmidt skribis 2005-06-15 19:14 (+0200):
> > as Larry mentioned in another thread that he wants a "different
> > notation for word splitting"
> > (http://www.nntp.perl.org/group/perl.perl6.language/21874),
> > how about that, similar to Haskell's "words" function:
>  
>  "words" is wrong for something that splits.

I took the name from Haskell's words, but I don't mind a name change.

>  It'd be right for something that matches. Let me demonstrate: 
>  
>     "(foo bar --baz blah-- quux)".words;
>  This should return <foo bar baz blah quux>, not <(foo bar --baz blah--
>  quux)>. So the name "words" isn't good for this.

right, it should return <foo bar baz blah quux> , with the additional
lvalue ability, so that the following (contrived) example works:

    my $str     = "(foo bar --baz blah-- quux)";
    $str.words .= map:{ substr $^word, 1 };
    say $str;
         # "(oo ar --az lah-- uux)";

> >     say join ",", @words;     # "hi,my,name,is,ingo";
>  
>  Following the logic that .words returns the words, the words are no
>  longer individual words when joined on comma instead of whitespace...

sorry, I don't quite get that.

I wanted to show the contents of @words, I did not want to split the
string into words and then concatenate the words again.

   # Maybe this...
   say " hi my  name is ingo ".words.map:{ "($_)" }
         # "(hi) (my) (name) (is) (ingo)"
   # ...is clearer?


--Ingo

-- 
Linux, the choice of a GNU | Black holes result when God divides the
generation on a dual AMD   | universe by zero.  
Athlon!                    | 
Thread:
Ingo Blechschmidt
Juerd
Ingo Blechschmidt
Juerd
Larry Wall
Ingo Blechschmidt
Juerd

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved