Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re^3: Yet Another Rosetta Code Problem (Perl, Ruby, Python, Haskell, ...)

by TimToady (Parson)
on Sep 12, 2007 at 16:58 UTC ( #638613=note: print w/replies, xml ) Need Help??

in reply to Re^2: Yet Another Rosetta Code Problem (Perl, Ruby, Python, Haskell, ...)
in thread Yet Another Rosetta Code Problem (Perl, Ruby, Python, Haskell, ...)

Earlier in this thread we already had a Perl 6 solution resembling this:
I think that does what you want here, though in this case it's the .comb method that's forgetting the $0 capture, not the regex, so you raise an interesting point for the general case.

It's not specced yet, but the current standard grammar has two rules called "same" and "differ" that could be used for this, along with the "quantify via separator" form:

"ZBBBCZZ" ~~ m:g/ . ** <?same> /)
Though that is also kinda cheating on your general point by not capturing anything in the first place...

At the moment, forgetting a capture within Perl 6 regex involves forcefully rebinding the capture to nothing, or returning an alternate result via a closure. Perhaps there should be a way to declare temp bindings that are not intended for the final match. But maybe not, if it's just going to turn into an obscure feature. So more likely it'll be some kind of context that just happens to work that way when you expect it to, like .comb does, only inside regex syntax.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://638613]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2019-04-22 18:02 GMT
Find Nodes?
    Voting Booth?
    I am most likely to install a new module from CPAN if:

    Results (112 votes). Check out past polls.