Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Python to perl: itertools product to replace a char in string in each possible position

by BrowserUk (Pope)
on Aug 10, 2015 at 08:36 UTC ( #1137971=note: print w/replies, xml ) Need Help??


in reply to Python to perl: itertools product to replace a char in string in each possible position

will produce the following combinations from the string 'convert perl to-python'

Assuming you typoed:

#! perl -slw use strict; use Algorithm::Combinatorics qw[ variations_with_repetition ]; sub zip { my( $r1, $r2 ) = @_; my $n = @$r1 > @$r2 ? $#{$r1} : $#{$r2}; map{ ( $r1->[ $_ ] // '', $r2->[ $_ ] // '' ) } 0 .. $n; } sub dashedCombos { my @words = split ' ', shift; map { join '', zip( \@words, $_ ) } variations_with_repetition( [ +' ', '-' ], $#words ); } print for dashedCombos( 'convert perl to python' ); __END__ C:\test>1137970 convert perl to python convert perl to-python convert perl-to python convert perl-to-python convert-perl to python convert-perl to-python convert-perl-to python convert-perl-to-python

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.
I'm with torvalds on this Agile (and TDD) debunked I told'em LLVM was the way to go. But did they listen!
  • Comment on Re: Python to perl: itertools product to replace a char in string in each possible position
  • Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (7)
As of 2021-01-17 16:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?