| mst | frikinz: but you're welcome to ignore us, just come back for your "I told you so" when the penny finally drops :D |
| rindolf | buu: define penny finally drops |
| rindolf | buubot: define penny finally drops |
| buubot | rindolf: penny n 1: a fractional monetary unit of Ireland and the United Kingdom; equal to one hundredth of a pound 2: a coin worth one-hundredth of the value of the basic unit [syn: {cent}, {centime}] [also: {pence} (pl)] |
| dngor | frikinz: Reflex is still pretty raw, but it's eventy without so much loopy. |
| rindolf | In Hebrew we say "The phone token has fallen" instead of "the penny finally drops". |
| dngor | Is that related to "the other shoe has dropped"? |
| rindolf | dngor: well, it means the same thing as the English expression - "I finally got to the bottom of it." |
| rindolf | Or understood it. |
| dngor | Oh, they're completely different idioms. |
| * mst | beats dngor with a slipper |
| rindolf | mst: :-D |
| Su-Shee | kinky. |
| mst | Su-Shee: wrt the topic ["Su-Shee wants the web-development framework that makes web-development hard, difficult and complicated"], it's called Maypole :) |
| rindolf | mst: heh. |
| rindolf | mst: yes, I can imagine that about Maypole. |
| Su-Shee | mst, avar: thank you so much. ;) |
| Su-Shee | please mail the sourcecode to rindolf who put it in the topic ;) |
| rindolf | Su-Shee: I can CPAN it. |
| Su-Shee | the topic? |
| mutewit | I have a string and am looking for a quick way to extract all 5-character slices out of it. |
| rindolf | Su-Shee: :-) |
| rindolf | IRC-Freenode-Perl-Topic-SuShee-WebDevelFrameworks-v0.0.1.tar.gz |
| mutewit | For example 'abcdef' returns 'abcde', 'bcdef' |
| mutewit | Any suggestions? |
| rindolf | mutewit: use subst |
| rindolf | mutewit: use substr |
| rindolf | mutewit: with a map |
| rindolf | eval: my $long_str = "0123456789abcdefgh"; [map { substr($long_s, $_, $_+5 } (0 .. length($long_s)-5)] |
| buubot | rindolf: ERROR: syntax error at (eval 36) line 1, at EOF |
| rindolf | eval: my $long_str = "0123456789abcdefgh"; [map { substr($long_s, $_, $_+5) } (0 .. length($long_s)-5)] |
| buubot | rindolf: [] |
| mutewit | rindolf: Awesome. |
| rindolf | eval: my $long_s = "0123456789abcdefgh"; [map { substr($long_s, $_, $_+5) } (0 .. length($long_s)-5)] |
| buubot | rindolf: ["01234", 123456, 2345678, "3456789a", "456789abc", "56789abcde", "6789abcdefg", "789abcdefgh", "89abcdefgh", "9abcdefgh", "abcdefgh", "bcdefgh", "cdefgh", "defgh"] |
| rindolf | Thrid time the charm! |
| mst | ... thrid |
| * rindolf | hits buubot with a big strict pragma. |
| * mst | turns the slipper on rindolf |
| rindolf | mst: yes, my typing sucks today. |
| rindolf | But f**k it! IRC is not exactly the declaration of independence. |
| pragma_ | ow! |
| rindolf | pragma_: pardon? |
| * rindolf | hits pragma_ with mst's slipper so it will really hurt. |
| pragma_ | why are you hitting buubot with me? |
| rindolf | pragma_: the strict pragma. |
| rindolf | pragma_: not you. |
| rindolf | perlbot: strict |
| perlbot | rindolf: Perl strictures - http://perldoc.perl.org/strict.html |
| rindolf | pragma_: ^^^ |
| rindolf | pragma_: we call the lowercase modules pragmata (sp?) in Perl. |
| rindolf | http://en.wiktionary.org/wiki/Special:Search?search=pragmata - hmm.... |
| rindolf | I thought pragmata was a valid plural of pragma. |
| dngor | ow? ow! |
| mutewit | rindolf: Are you sure that generates only strings of length 5? |
| rindolf | mutewit: well, you need to watch from fencepost errors. |
| mst | mutewit: hey, he got you half way there |
| rindolf | mutewit: oh wait. |
| mst | mutewit: how about you read p3rl.org/substr and p3rl.org/map and have a go yourself |
| rindolf | mutewit: yes , you need substr($long_s, $_, 5) |
| mst | mutewit: this is a help-you-to-learn channel |
| mst | mutewit: not a "write your code for you" channel |
| rindolf | mutewit: and beware from fencepost errors. |
| rindolf | like substr($long_s , 1000, 5) |
| rindolf | Because that will be "" |
| rindolf | Or a 4 chars length. |
| mutewit | rindolf: I wanted the length argument to be 5 :p |
| mutewit | mst: I understand, I just missed the $_ + 5 issue. |
| mst | mutewit: right. what I'm saying is, you should have experimented |
| rindolf | mutewit: yes, I know. |
| mst | mutewit: then shown us the experiment and said "I can't work out why this is still wrong, here's what I've worked out so far" |
| mst | mutewit: then we can help you learn |
| mst | mutewit: assuming learning to write stuff yourself is what you're aiming for |
| * rindolf | waits for tybalt89 to come up with a funky regex to do it. |
| mst | (if it isn't, please just throw yourself off a cliff or something, kthx ;) |
| rindolf | mst: I think that's the case, no need to preach to mutewit about it. |
| mutewit | mutewit: I did, and figured out the solution. when switching windows. |
| mst | mutewit: aye. I'm just trying to explain how to get the most learning out of us as well as the most working code. |
| * rindolf | sometimes thinks we spend much more IRC volume discussing netiquette than actually suffering from the bad netiquette. |
| mutewit | But by the time I came back to the channel there was a whole page of "preaching". |
| mutewit | I was using a split method with array indexing and it felt too much like a C-approach. |
| rindolf | mutewit: oh, you split the string into chars? |
| mst | yeah, by the time you've done map, join, split, ... |
| mst | you've basically just reimplemented substr badly :) |
| mutewit | rindolf: That's what I was doing, but the map/substr approach is a lot cleaner. |
| rindolf | mutewit: yeah/ |
| rindolf | mutewit: split into chars sometimes has some uses. |
| rindolf | mutewit: but this reminds me too much of SICP. |
| rindolf | perlbot: sicp |
| perlbot | rindolf: http://mitpress.mit.edu/sicp/ - "Structure and Interpretation of Computer Programs" - A Classical Text on Programming |
| rindolf | mutewit: see - http://www.shlomifish.org/lecture/Perl/Lightning/Too-Many-Ways/slides/slide13.html |
| rindolf | mutewit: this is how an SICP programmer will implement a simple text processing task. |
| mutewit | SICP, love the book. |
| mutewit | and all the OCaml work this year has given rise to a functional bent of mind |
| mutewit | which is kinda screwing around with my perl code. |
| rindolf | mutewit: yeah. |
| rindolf | mutewit: http://www.shlomifish.org/lecture/Perl/Lightning/Too-Many-Ways/slides/slide12.html - this is the fastest Perl solution. |
| rindolf | At least in speed. |
| rindolf | It can be a little shorter with a regex lookahead, but it's less elegant and slower. |
| rindolf | http://www.shlomifish.org/lecture/Perl/Lightning/Too-Many-Ways/slides/slide9.html - there you go. |
| rindolf | mutewit: did you know how to program before reading SICP? |
| rindolf | I think it's not a good introductory book. |
| rindolf | MIT are going to ditch it in favour of some Python/Robotics curriculum. |
| mst | I think it's only a good introductory book if you know some math and have the brain to follow it |
| mst | it teaches a lot of hard concepts very quickly |
| Su-Shee | mst: from a "I'm from the humanities department" point of view it's manageable. it's not easy, but everyone can work with it. |
| tybalt89 | eval: $_ = "0123456789abcdefgh"; [ /(?=(.{5}))/g ] |
| buubot | tybalt89: ["01234",12345,23456,34567,45678,56789,"6789a","789ab","89abc","9abcd","abcde","bcdef","cdefg","defgh"] |
| mutewit | rindolf: Yes. |
| rindolf | mutewit: ah. Using what? |
| rindolf | tybalt89++ # Up for the challenge. |
| mutewit | and yes, MIT ditched SICP in favor of a Python-based intro course. |
| tybalt89 | rindolf: I was off in other windows :( |
| tybalt89 | mutewit: ^^ for 5 char slices |
| rindolf | mutewit: don't use it if you want future generations to understand it. |
| * rindolf | slaps tybalt89 with mst's slipper for golfing mutewit's solution and telling him it's a good idea. |
| tybalt89 | rindolf: that's not golfing, just common simple regex :) |
| rindolf | tybalt89: sigh. |
| rindolf | tybalt89: simple. |
| rindolf | irregular regular expression. |
| rindolf | Maybe use Regexp::Common |
| mutewit | I added in tybalt89's code but commented it for future reference. |
| mst | I'd definitely use the substr approach for real code |
| mst | tybalt89's code is cleverness to prove it can be done; I don't believe he was recommending it |
| tybalt89 | mst: sigh, yes, I am recommending it. It's the clearest solution. |
| mst | tybalt89: I respectfully disagree. |
| mst | I find the substr approach far more obvious |
| Chazz | rindolf, ty. :) |
| mst | but then, I mostly write applications perl rather than scripts, so I only engage in regexp cleverness when actively useful |
| rindolf | tybalt89: look-aheads and look-behinds are dark corners of the Perl not-so-reg-regexes |
| Yaakov | In the context of this particular problem, it's pretty straightforward, but, knowledge of the development/maintenance team(s) would push my choce one way or another. |
| tybalt89 | mst: note it took rindolf three tries, and even then he got it wrong. |
| rindolf | tybalt89: well, I'm not focused now. |
| mst | tybalt89: map substr($str, $_, 5), 0 .. length($str)-5; ? |
| mst | maybe -6 |
| * tybalt89 | turns the lens, trying to focus rindolf |
| rindolf | mst: -5 |
| mst | but it's hardly difficult; rindolf's just having a day of silly mistakes |
| rindolf | Unit tests! |
| mst | I'd expect him to get it right first time when on form too :) |
| rindolf | Some clear code is hard to get right. |
| rindolf | Doesn't make it less clear. |
| mst | yeah |
| rindolf | Most people will not write a correct binary search at first try. |
| tybalt89 | "maybe -6" is proof of lack of clarity. :) |
| rindolf | But the correct binary search is easy to digest. |
| mst | tybalt89: no, it's proof it's 8pm on a Sunday and I'm not particularly awake either |
| mst | but your code just made me go "hang on, WHAT?!" |
| mst | then I had to stop and dissect it |
| mst | -then- I saw what you were doing |
| rindolf | mst++ |
| mst | also, the substr approach displays the semantics and the reasoning |
| mst | whereas the regex approach displays, well, line noise, frankly |
| rindolf | mst: why don't we agree to disagree with tybalt89 ? |
| rindolf | mst: so how's the weather? ;-) |