| 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 eg. '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 soln. 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 managable. 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 unclearness :) |
| 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? ;-) |