Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

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 musing on the Monastery: (4)
As of 2021-04-11 01:10 GMT
Find Nodes?
    Voting Booth?

    No recent polls found