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
|