»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
jnthn sleep & 00:01
00:17 impious left 00:19 [1]imamelia joined 00:20 imamelia left, [1]imamelia is now known as imamelia 00:50 awwaiid joined 01:04 noganex joined 01:08 noganex_ left 01:09 orafu joined 01:23 mtk left 01:30 jcrigby left 01:31 mtk joined 01:33 aesop left 01:34 aesop joined 01:40 whiteknight left 01:50 awwaiid left 01:54 cotto left 01:57 awwaiid joined 01:59 Chillance left
colomon ack. I've forgotten where pmichaud's brilliant cards example is again 02:02
Though I'd even downloaded it....
I'm also trying to think of a good "there's more than one way to do it" example 02:10
TimToady a number of rosettacode examples show both imperative and functional solutions, such as rosettacode.org/wiki/Van_der_Corput...nce#Perl_6 02:17
factorial has four different solutions, I think
02:18 leprevost joined 02:27 bacek left 02:28 pnu left 02:29 pnu joined 02:30 bacek joined 03:12 hudnix left 03:14 newtonrunz left 03:23 Su-Shee_ joined 03:27 Su-Shee left 03:31 beekor left 03:38 takesako__ left 03:39 gabiruh joined 03:42 [particle]1 joined, [particle] left 03:43 leprevost left, plobsing left 03:44 plobsing joined 03:49 donri left 03:55 leprevost joined 04:15 Helios` left 04:16 Helios` joined 04:21 robinsmidsrod joined 04:32 Helios` left 04:34 Helios` joined 04:54 nymacro joined 05:04 Mowah joined 05:05 justatheory left 05:14 Mowah left, Mowah joined 05:33 imamelia left 05:34 imamelia joined 05:53 plobsing left
imamelia There's something to consider for Perl 6...a function that automatically returns output of another program. 05:57
tylercurtis imamelia: another Perl 6 program? Or another program in general? 06:02
In the former case, writing such a function with eval would be trivial. Otherwise, I believe qx/ foo / does that. 06:03
06:04 drbean joined
imamelia Something like system() combined with a pipe. 06:06
06:07 araujo left
tylercurtis imamelia: qx/ foo / runs the command "foo" and produces its output as a string. 06:07
I'd demonstrate it, but p6eval doesn't allow it. 06:08
06:09 drbean left 06:10 drbean joined 06:11 cotto joined
imamelia So you can do my $asdf = qx/$assembler tmpasm.asm tmpasm.bin/;? 06:14
06:15 drbean left 06:17 silent_h_ joined
tylercurtis Yes. 06:30
Well, actually, in Perl 6, to interpolate that $assembler, you'd need to do qqx/.../ 06:31
06:33 imamelia left 06:34 takadonet left, imamelia joined 06:47 imamelia is now known as imamelia|Sleep 06:51 imamelia|Sleep left 07:12 rhr left 07:21 molaf joined 07:25 starcoder is now known as scoder, scoder is now known as starcoder, starcoder is now known as scoder 07:38 scoder is now known as starcoder 07:39 rhr joined 07:44 wallberg joined 07:48 leprevost left, leprevost joined
moritz good morning 07:56
07:56 Moukeddar joined
tadzik good morning 07:56
08:00 starcoder is now known as iElijah101, iElijah101 is now known as scoder 08:03 scoder is now known as starcoder 08:04 nymacro left 08:05 silent_h_ left 08:11 Moukeddar left 08:14 leprevost left 08:15 Moukeddar joined, Moukeddar left, Moukeddar joined 08:22 leprevost joined, Su-Shee_ is now known as Su-Shee 08:23 Helios` left 08:24 Moukeddar left 08:25 Helios` joined 08:34 takadonet joined 08:49 arcus joined 09:06 pernatiy left 09:09 masak joined
masak greetings, pandas. 09:10
09:10 nadim left 09:12 nadim joined 09:20 araujo joined
masak niecza: say "World Domin{.pick}" given <oes us ation> 09:31
p6eval niecza v4-76-g7bf5ef9: OUTPUT«Unhandled exception: Unable to resolve method pick in class Parcel␤ at /tmp/6MOD0e3ynU line 1 (MAIN mainline @ 3)␤ at /home/p6eval/niecza/lib/CORE.setting line 1311 (CORE C552_ANON @ 2)␤ at /home/p6eval/niecza/lib/CORE.setting line 1312 (CORE module-CORE @ 39)␤ at
../home/p6eval/…
masak aww :)
a few of us could probable have a very productive "let's populate the Niecza setting" evening at some point. 09:32
s/ble/bly/
it would also be cool to have a "let's close some of these rakudobugs" evening. there's lots we can do if we pool our resources. 09:34
09:42 arcus left 09:44 arcus joined 10:01 wamba left
masak is C<uniq> spec'd anywhere? 10:05
10:11 arcus left 10:14 wamba joined 10:15 mj41 joined 10:27 whiteknight joined
masak write Ruby, run PHP: fructoselang.org/ 10:32
this is the first example of someone compiling into PHP that I've seen. I'm simultaneously intrigued and concerned. :)
10:38 ggoebel__ left 10:43 ggoebel__ joined 10:49 drbean joined 10:52 masak left 10:55 drbean left 10:56 drbean joined 11:00 masak joined, drbean left 11:02 drbean joined 11:03 wamba left 11:06 risou joined 11:07 drbean left
jnthn afternoon, #perl6 11:08
11:08 drbean joined
mathw afternoon, jnthn 11:09
masak jnthn! \o/
jnthn masak! \o/ 11:10
I survived $consulting-gig night out ;)
masak glad to hear it ;) 11:11
11:13 wallberg left, drbean left 11:14 wamba joined 11:15 drbean joined 11:17 wamba left 11:19 drbean left
mathw :) 11:19
11:21 drbean joined 11:22 mj41 left, wamba joined 11:25 Chillance joined, drbean left 11:27 drbean joined 11:28 otetar joined 11:31 drbean left 11:32 MayDaniel joined
tadzik o/ 11:33
11:34 drbean joined, risou left 11:36 risou joined 11:38 Moukeddar joined, drbean left, wamba left 11:40 drbean joined, pernatiy joined
masak \o 11:42
tadzik I feel like I got to some new stage of enlightenment 11:43
11:43 drbean left
tadzik I feel annoyed seeing code with no tests 11:43
masak I usually feel a bit sad. 11:45
it's a lost opportunity.
then again, I still write mid-sized pieces of code without tests, so I shouldn't be too much of a hypocrite. 11:46
11:46 drbean joined
Moukeddar haha 11:48
testing ?
masak Moukeddar: oh, you'd be surprised.
:)
Moukeddar i have a very rare adventures with Testing 11:49
11:51 drbean left 11:52 drbean joined 11:53 Patterner left
masak Moukeddar: automated tests are one of those outgroup-ingroup phenomena. before you've tried them in earnest, they don't seem worth the time. once you're used to them, it feels outright *reckless* to code without them. 11:55
Moukeddar masak, maybe :)
11:57 arcus joined, Psyche^ joined, Psyche^ is now known as Patterner, drbean left
masak this happens to me all the time now: I change something -- maybe adding new functionality or what have you -- and a test turns red. I go "oh right", and fix my thinko. 11:57
but without tests, I would've just coded on, oblivious.
and the cost for fixing that error increases with the square of the distance to the time I wrote the original code. 11:58
(or something like that)
11:59 drbean joined
Moukeddar masak, it's quite helpful in big projects :) 12:00
as i see
masak anything with an API of some kind. 12:03
doing tests right also enforces good encapsulation habits, as I've lately discovered.
if you're at the stage where you're saying "I'll just make this attribute/field/method protected so that I can test it", you're still not doing encapsulation right :) 12:04
12:05 drbean left
Moukeddar hehe 12:05
12:05 drbean joined
Moukeddar i still do :) 12:05
masak :) 12:06
Moukeddar i'm a lousy dev :) 12:07
masak I didn't say that. :) we're all on a journey. 12:08
Moukeddar you didn't,but i admit it :( 12:09
12:09 drbean left
masak what I really mean is that if you feel the need to open up things beyond your API in order to do testing, then either (1) you're likely testing the wrong things, or (2) your API isn't expressive enough. 12:10
I'd be happy to discuss counterexamples.
12:11 drbean joined
sunnavy /win 8 12:15
12:16 drbean left
Moukeddar well 12:16
i'm currently working on a mini engine:)
to render some basic stuff using DX(managed)
does it need testing?
12:18 drbean joined
masak things having to do with IO (or graphics, or persistence, or real-world side effects) are sort of off the beaten track with testing. 12:21
often it's possible to test them, with special testing frameworks and the like.
but I think the important thing to test is the "side-effect free" core of an application. 12:22
12:22 drbean left
masak the brain sitting in the middle, directing things like IO, graphics, and persistence. 12:22
mathw this is why one should structure one's applications properly 12:24
12:24 drbean joined
mathw app logic should not involve any IO or other side effects if at all possible 12:24
masak on the cqrs-ddd mailing list, one of the recurring questions is apparently, "how do I inject a repository into my domain objects?" 12:25
the answer is, of course, "don't do that!"
Moukeddar i see , then i have to redesign it :( 12:26
mathw it feels like a pain to start with
but it's really, really worth it
masak yeah.
mathw if your data structures and your app logic are all unit testable, it's soooo good
masak and soon enough it becomes second nature.
also, structure and separation of concerns is everywhere, if you look for it. 12:27
mathw it helps you get a good API, and then you can replace a data structure wholesale, just stick to the same API and run it through your tests and it should be fine
I have discussions with people at work about this sometimes
Moukeddar ok then after you mentioned how the internal core shouldn't have any IO , i saw many flaws in my design :(
mathw Got yelled at the other week
why did you add this method here
it just turns into a check of this
why not just check it over here instead
gargh
yeah sure if you want to couple everything together too tightly 12:28
masak one blog post that I never wrote was about refactoring Druid into something object-oriented. I even made a diagram with color-coded sections of code for various concerns. and then mapped the colors to the old code. it made the old code look terribly scattered and tangled. :)
12:28 drbean left
masak I guess that's a universal law, though: "old code will look like crap from the 20-20 hindsight perspective of a separated concern" 12:29
12:29 hudnix joined
Moukeddar god , it's painful 12:29
mathw yes
Moukeddar make the pain go away please
mathw sometimes you can only see the design afterwards
12:30 drbean joined
Moukeddar i need some book about Design 12:31
masak Moukeddar: www.amazon.com/Domain-Driven-Design...0321125215 12:32
12:32 orafu left
Moukeddar is it general or Perl Specific ? 12:34
is it about teams ?
12:34 orafu joined 12:35 drbean left
masak general. teams are a part of it, yes. 12:36
Moukeddar ouch!
i'm one army man :)
12:36 drbean joined 12:37 otetar left
masak that shouldn't prevent you from getting something out of that book. 12:37
12:38 icwiener joined
Moukeddar i'll see: ) 12:38
12:40 sjn left 12:41 drbean left
Moukeddar sounds good :) 12:41
reviews too :) 12:42
12:42 drbean joined
Moukeddar so many books 12:43
some of them are worthless , just a RIP of some WIKI or documention 12:44
masak not this one.
Moukeddar i'll take your word :) 12:45
12:47 drbean left 12:48 drbean joined
Moukeddar masak, what's exactly domain-driven thingy ? 12:48
12:49 sjn joined
masak the way I understand it: for every business application we write, there's an underlying domain, often with a great tradition. 12:49
if we write a shipping system, there's a shipping domain with a lot of established terms.
Moukeddar ah i see now
masak stock exchange system -- stock exchange domain. etc.
Moukeddar just like i thought it is :) 12:50
masak thing is, the programmer usually isn't a domain expert. but a domain expert is needed in order for the system to be relevant/useful/usable.
Moukeddar studying in foreign language can be a pain :p
so, i don't have to "Know it All " ???? 12:51
masak correct.
Moukeddar sweet
i was feeling crippled
so , later in my career 12:52
i'll get the specification
then i'll work out a solution right?
masak the specification isn't a domain expert.
12:52 drbean left
masak what you need is an actual human being who knows the domain. 12:53
Moukeddar ah
for example let's say i was assignet to code an accounting app
masak and then to work out a common language with terms that (1) the domain expert understands and can use, and (2) you understand and use in your system.
12:53 MayDaniel left
Moukeddar i'll have to discuss everything with an accountant for example 12:53
right?
masak right.
or someone who is very familiar with accounting. 12:54
Moukeddar nice :)
mathw although if you work for a big company, you may well just be handed a design and told to code a particular part of it
Moukeddar things are getting clear for me
12:54 drbean joined, Trashlord left
Moukeddar Mercy 12:54
mathw although that sucks, implementing someone else's design is usually frustrating because they'll get it wrong :)
masak mathw: that's very waterfall-y. problem is that experience only trickles downward/forward. 12:55
mathw yeah
Moukeddar haha , and there's no way for you to correct it ?
masak no :/
mathw fortunately where I am we don't have specific software designers
Moukeddar Ouch!
mathw so we all do a mixture
masak yeah.
mathw we're software engineers rather than programmers
so we get a thing to do
and have to come up with how to do it, how to fit it into the existing system, all that
Moukeddar good :) 12:56
mathw solo or with consultation with colleagues
Moukeddar i wish i could go to get a software engineer degree
mathw usually the latter, they help spot the stupid mistakes before you make them :)
Moukeddar so hard here
mathw :(
I've got a degree in computer science
we had a module on good software design
very useful
I wish there was evidence in the world that anybody else had ever done it...
Like Mum's work had a new database app 12:57
supposedly customised for their specific needs
Moukeddar here ,either high grades (which's kinda impossible due to private schools galactical marks ) or money
mathw the company gathered loads of requirements and use cases... and then ignored them all
ah 12:58
not so bad here
12:58 drbean left
mathw My parents supplied me with a fair amount of money 12:59
I had work in the holidays
and a student loan
Moukeddar it's very bad here
mathw my university's now charging 3x the fees it was though
Moukeddar 3rd world Style baddassity
13:00 drbean joined
mathw but then, we now have a government who apparently have no interest in the idea of anybody without old money being educated beyond the age of 18 13:00
Moukeddar there's no work here than can supply me with enough money for those schools
but still , i'll do it 13:01
i'll take abumpy road and hope it'll work :)
thanks for the tips guys :) 13:02
mathw I hope you can do it 13:03
Moukeddar i really do too :) 13:04
13:04 drbean left
tadzik seen worr 13:04
aloha worr was last seen in #perl6 43 days 8 hours ago saying "sorry about that".
masak Moukeddar: listen to what books people recommend, read them, code a lot. it's not a total substitute for a higher education, but it will get you a long way. 13:06
13:06 drbean joined
Moukeddar masak, that's what i'm trying to do :) 13:06
masak Moukeddar++ 13:07
mathw yes 13:08
do open source stuff, listen to what people say about what you do, learn from them
there are some extremely skilled and very talented people in places like this
Moukeddar i'll have to take my coding level one more step before being able to contribute to open source projects 13:09
or else i'll get flamed
mathw we don't do flaming 13:10
education instead
Moukeddar well
they do
13:10 drbean left
moritz then contribute to us, not to them :-) 13:10
mathw yes :) 13:11
Moukeddar i went to Gamedev asking about XNA or SlimDX , and i got flamed real bad :)
mathw seriously, this is one of the friendliest places online
ah games people
yes
some of them are not very nice
Moukeddar perl6 is really tempting :)
the gamdev guys are quite arrogant
13:12 drbean joined
Moukeddar one other thing i got flamed because is that i asked if the fact that i didn't learn Assembly or C\C++ is bad 13:12
i got no response 13:13
is it that bad?
masak it's a bit of a one-dimensional question.
Moukeddar and the answer is ?
moritz Moukeddar: no response is not the same as getting flamed 13:14
masak Moukeddar: "it depends"
Moukeddar it's not the "non response" but the few responses i got were pure troll or flame
masak I think C is still worth learning for any developer, and probably more so with gaming. 13:15
but you could write a perfectly good game in Python nowadays and not have to touch C or Assembly.
mathw I think most big games these days are written primarily in C++ 13:16
but they usually have large chunks of game-specific code in a higher-level language
Moukeddar the performance penalty
so what's say ? learn C instead of ASM ?
masak right, that was my next point: "but if you start writing for the big players on the market..."
mathw the core game engine is often C++, but the game's own logic may well be in a scripting language the engine can run
masak Lua, say.
mathw i.e. Unreal Engine supports UnrealScript
13:16 drbean left
mathw Lua's a common one, yes 13:17
masak Moukeddar: I'd go with C before ASM, yes.
Moukeddar i'm aware of the scripting thing in games :)
C it is :)
mathw I believe Civilisation 4's engine introduced Python
C is worth learning, yes
Moukeddar this summer i'm gonna rock :)
mathw I'm a bit biased of course
flussence vaguely remembers the horrible language used by a few Doom sourceports...
mathw I'm a professional C++ programmer :)
masak Moukeddar: ASM is always CPU-specific; C is the assembly language of the von Neumann machine :)
Su-Shee I'm doing web development and guis and I still think it's a good thing per se to know C and assembler. (and smalltalk and scheme or lisp and for example io or self or javascript..)
13:17 Helios` left
mathw But I think all programmers should be at least familiar with C 13:17
and have also looked at languages in other paradigms 13:18
Moukeddar ASM seems like an Overkill for what i'm intending to do in the future
masak mathw: me too.
Moukeddar ok C :)
mathw I need to make some time to brush up on my Haskell properly again
then I think I'll need to spend some more time with Prolog
Moukeddar you're a league of gentlemen :)
mathw and I still want to learn Common Lisp (don't ask why, maybe I'm feeling masochistic)
13:18 Helios` joined
masak learn this: C, LISP, Haskell, Prolog, Perl 5, and Perl 6. :) 13:18
Su-Shee thanks to the rise of available microcontrollers for everyone I also think a little assembler doesn't hurt. 13:19
13:19 drbean joined
masak let's make that Common Lisp. 13:19
Su-Shee masak: you're missing one of the purist OO langs ;)
masak Su-Shee: oh, that's very true.
Moukeddar microcontroller ?
mathw Common Lisp is awesomely powerful, but the syntax sends my eyes wild
Moukeddar costs a fortune here
mathw Su-Shee: Smalltalk!
masak yes, Smalltalk.
mathw I did some of that once
I didn't like the whole persistent image thing
Su-Shee I love smalltalk. really opened my eyes on a very special way.
masak Java and/or C# there will be plenty of time to learn at $work :P
Moukeddar C is a must , then i'll go wild :)
mathw but I love the idea of OO using message passing instead of method calls 13:20
Su-Shee mathw: it felt weird but the integration is amazing.
masak this sounds like a blog post. "why you should learn these 7 langauges"
mathw Interestingly, Objective-C uses a very smalltalky object model
Su-Shee and the smalltalk books are exceptional.
mathw masak: go for it
Moukeddar mathw, should try the Async thingy , amazing :)
Su-Shee masak: there's at least 20 of those already and 30 stack overflow threads and they _all_ agree basically on the canon :) 13:21
crockford's 6 episode javascript lessons basically tell it as well.
masak Su-Shee: you don't happen to have the URLs to some of them?
Su-Shee (which are really worthwhile to watch..)
mathw okay 13:22
I need to go out and get some yarn
13:22 Helios` is now known as Helios
mathw I have a teddy bear to make, and at the moment I can only make it in luminous green 13:22
Su-Shee masak: not at hand, I'll paste it if I fall over one again. I plainly did what a good humanities student is supposed to do: "know the classics" ;)
Moukeddar teddy bear ?
lol
you guys are hilarious :)
thanks again :) 13:23
masak mathw++ # practicing the soft arts
13:23 IllvilJa left
mathw yeah I like making things that are tangible 13:23
Su-Shee but I can really really recommend smalltalk books.
mathw: that's why I bake bread :)
mathw Su-Shee: I baked bread this morning :)
later I will be playing music
Su-Shee mathw: mine is still growing ;) (sourdough)
13:23 drbean left
mathw ah 13:23
I've never managed to get a sourdough starter going 13:24
masak re Smalltalk: I sometimes come back to this document: gagne.homedns.org/~tgagne/contrib/E...oryST.html
it's inspiring reading.
mathw but I did do a nice slow rise, so it should have good flavour
I'll find out later :)
Moukeddar one other issue i have is the language
:(
moritz mathw: starting a sourdough is a bit like bootstrapping a compiler :-) 13:25
mathw okay, I'm off
I'll be back later
13:25 drbean joined
Su-Shee masak: there's also an extremely interesting lecture of alan kay from the mid 80ies about userinterface, it's amazing what this man was involved in. 13:25
Moukeddar hello ?
jnthn moritz: I said "d'oh" quite a few times working on nqp bootstrapping ;)
masak Moukeddar: don't ask to ask. :) just say what you want. 13:26
Moukeddar i need a better translator :) 13:27
thank you guys again 13:29
i'm off to NOMNOM
masak o/
13:30 drbean left 13:31 drbean joined
Moukeddar false alarm , not ready yet :( 13:32
13:34 Moukeddar left 13:36 drbean left 13:38 drbean joined 13:45 drbean left 13:46 drbean joined
colomon just blogged a p6 resource page for my talk today, comments deeply appreciated: justrakudoit.wordpress.com/2011/04/...resources/ 13:49
13:50 wallberg joined 13:51 drbean left
masak colomon++ 13:52
moritz colomon: change that link to masak's blog post to strangelyconsistent.org/blog/happy-...ary-perl-6
colomon: otherwise: very nice
masak was just going to say that
13:53 drbean joined
moritz faster 13:53
13:53 JimmyZ joined
masak :) 13:53
moritz can anybody else confirm spectest failures on newest parrot?
colomon I'm going to stick my presentation on line in a couple of minutes for suggestions, too.
moritz++
13:53 pmurias joined
masak ooh, I found a typo in the first paragraph of that post... 13:53
masak fixes
13:57 awwaiid left 13:58 drbean left 13:59 drbean joined
colomon Is try.rakudo.org working atm? 13:59
13:59 fhelmberger joined
moritz seems not 14:00
wallberg hi all! I seem to recall asking this a long time ago but here it goes again. how can I open a named UNIX pipe/fifo in p6 and read input on it? 14:02
moritz would try open('pipename')
masak doesn't a named UNIX pipe/fifo work just like a file? 14:03
14:03 drbean left
flussence it's socket files that are fiddly, fifos should work just fine 14:03
14:04 JimmyZ_ joined
masak the abstraction that a fifo does is that it's behavior pretending to be a file. so a Perl 6 implementation should blithely treat it as a file, otherwise the implementation is doing something wrong. 14:04
14:05 drbean joined
wallberg ok 14:05
Can we make system calls from within p6 to run commands such as mkfifo? 14:06
14:06 JimmyZ left, JimmyZ_ is now known as JimmyZ
wallberg system("bla bla")? 14:06
moritz run("mkfifo arg1 arg2")
masak run 'bla bla'
wallberg oki
masak moritz is faster than I today ;) 14:07
colomon backtick works as well, no?
masak no.
colomon btw, presentation draft is www.harmonyware.com/out-talk/0001.html
masak but qx and qqx do.
moritz qx/qqx
masak ooh.
colomon still needs the section on junctions. :)
14:07 pochi left
colomon and probably much advice from the worthies here. 14:07
jnthn colomon: will take quick look through
wallberg can someone elaborate a little on qx and qqx?
masak colomon: "All the main developers are there pretty much day" -- missing "every"? 14:08
colomon yes
jnthn colomon: All the main developers are there pretty much day
oh, masak was quicker
colomon corrected locally now. :)
masak "Two languages from the Perl family" -- Larry Wall
is that a direct quote? 14:09
I recall obra saying that, but not TimToady.
jnthn "Implemented in NQP (Not Quite Perl 6) and Parrot"
Worth mentioning that much of it is written in Perl 6 too (e.g. the setting)
14:09 imamelia|Sleep joined 14:10 drbean left
jnthn "We hope to have it also running on .NET soon" ==> yes, but the new meta-model and gradual typing improvements are more immediate 14:10
masak <TimToady> I think deuterium should be renamed to something less insulting to hydrogen.
jnthn And potentially more interesting.
colomon masak: That's actually ripped from one of jnthn++'s talks
masak oh, ok :)
jnthn orly? :)
masak jnthn: is that a direct quote? :)
14:10 drbean joined 14:11 arcus left
colomon jnthn: " * New meta-model and gradual typing improvements are the next big project" added before .NET line 14:11
jnthn colomon: OK 14:12
Maybe even next/current :)
er, s/next/current/ :)
colomon done
14:12 arcus joined 14:13 Helios left
jnthn masak: er... 14:13
14:13 wamba joined
jnthn masak: I'm guessing if I put it as a direct quote I musta got that from somewhere 14:13
14:14 Helios joined 14:15 drbean left
arcus hi 14:15
I get some error while running a script:dpaste.com/537475/
tadzik hello arcus
arcus: this is a Perl 6 channel, you seem to have a problem with Perl 5
colomon now I'm worried I made up that quote, I can't find where jnthn said it.
masak colomon: one possible source is this post: strangelyconsistent.org/blog/how-pe...ill-us-all 14:16
moritz I've also quoted larry saying that
masak "Perl 5 and Perl 6 are two languages in the Perl family, but of different lineages." 14:17
14:17 drbean joined
masak but the meme is definitely earlier than that. 14:17
colomon Ah, I probably stole it from moritz++ 14:18
masak from moritz?
colomon: nice slides. 14:19
colomon Thanks.
moritz I had it as a quote in a german 5 -> 6 talk
masak ah.
colomon moritz: which was the source file I started working with to do this talk. :) 14:20
I think a couple of your examples may have survived too.
14:21 drbean left
colomon like bits of factorials 14:21
14:22 JimmyZ left 14:23 drbean joined
moritz colomon: fwiw the output in s5/index.html is much more polished 14:23
colomon: I don't know if the README says it, but there are two different sets of output files generated
colomon: the ones in s5/ are prettier :-) 14:24
colomon One thought on roles I developed while working on this: roles can be akin to "has a" relationships. So for instance in the ABC example, it makes sense to say Note has a Duration. It makes no sense to say Note *is* a Duration, so inheritance doesn't really fit well.
moritz: errr... 14:25
moritz colomon: cd s5; firefox index.html
colomon actually, if I use the s5 version, Camelia is lurking over the upper left hand corner of my text on every page 14:26
moritz then make her smaller :-)
masak ooh -- psyde crashed.
something must've moved under it while I didn't blog.
colomon moritz: suggestions as to how? 14:27
14:27 imamelia|Sleep is now known as imamelia
moritz colomon: s5.tmpl is the template 14:27
14:28 drbean left
moritz oh wait 14:28
just resize s5/camelia.gif, or so
moritz hasn't used it for ages
masak colomon: if the Note *has a* Duration, isn't that a hint that you should use composition, not role-'does'? 14:29
14:29 drbean joined
colomon masak: what do you mean by composition? 14:30
moritz has $.duration;
colomon hmmm... I guess it's the difference between has $.duration versus is duration-bearing-object 14:31
14:34 [1]imamelia joined, drbean left 14:35 drbean joined
masak I often find this kind of OO design decision tricky. 14:36
it often feels like there are a few degrees of freedom left over, with no real guidance (apart from experience) on how to factor things.
14:37 imamelia left, [1]imamelia is now known as imamelia
colomon masak: yes. As you might gather, I'm still trying to feel out when it makes sense to use inheritance and when roles. 14:37
I feel like there's an article or book waiting to be written on the subject once someone understands it a little better. :) 14:38
moritz: s5 version looks much much better once it is de-cameliaized, but now some of the slides are too.
*long
masak colomon: the "extremist" line would be to use roles for all behavior reuse, and inheritance only for type relations between classes. 14:39
14:39 drbean left
moritz colomon: then split them up 14:40
colomon moritz: yes, I'm working on it
moritz colomon: the rule of thumb is that you shouldn't have more than 5 facts on a single slide :-)
14:41 drbean joined 14:45 drbean left 14:47 drbean joined 14:52 drbean left
colomon rakudo: my Int|Str $error = "String"; say $error 14:52
p6eval rakudo 8533c3: OUTPUT«===SORRY!===␤In "my" declaration, typename Int must be predeclared (or marked as declarative with :: prefix) at line 22, near "|Str $erro"␤»
colomon odd error
moritz std: my Int|Str $error = "String"; say $error 14:53
p6eval std 3468e14: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/VLi3cE_UJL line 1:␤------> my Int⏏|Str $error = "String"; say $error␤Malformed my at /tmp/VLi3cE_UJL line 1:␤------> my Int⏏|Str $error = "String"; say
..$error␤…
colomon woah, not even supported in STD yet?!
moritz not even in Perl 6
14:54 drbean joined
colomon the example is straight from the spec. 14:54
masak there's been a de-emphasizing of junctional types in favor of where clauses.
colomon: then the spec needs updating.
colomon that was from S02, I think. 14:55
I'm looking for the section on junctions?
masak there's a little about junctions in S09.
colomon and a tiny bit in S03
so, where in the world is pmichaud's beautiful card script? I saved it somewhere safe... 14:57
masak gist.github.com/153993
colomon masak++
14:58 drbean left 14:59 drbean joined
colomon interesting ... it gives errors now 14:59
Use of uninitialized value in numeric context in 'Code::assuming_helper' at line 1
ouch 15:00
@deck Z @( (2..10, 10, 10, 10, 11) >>xx>> 4 ); doesn't work correctly
masak confirmed.
(the error message, that is) 15:01
moritz try it with Xxx 4 instead of >>xx>> 4
colomon is not sure he approves of Xxx as a command
however, that does work. moritz++
moritz wow, I'm impressed. That was a shot in the dark
15:02 wamba left
moritz it's three chars shorter :-) 15:02
15:03 drbean left
colomon process.pl: Wide character in subroutine entry at process.pl line 143. 15:04
seems like it doesn't like unicode?
moritz colomon: you can ignore that warning, I can also fix it :-) 15:05
15:05 drbean joined
moritz colomon: git pull, and try again please 15:06
15:06 pochi joined
colomon beauty! moritz++ 15:07
15:10 drbean left 15:11 drbean joined 15:16 drbean left 15:18 drbean joined 15:20 cognominal left 15:21 cognominal joined 15:22 drbean left 15:24 drbean joined 15:25 orafu left 15:27 orafu joined 15:29 drbean left 15:30 drbean joined 15:32 JimmyZ joined
JimmyZ rakudo:sub postfix:<!>($a) { [*] 1..$a; }; say (*!)(5); 15:34
p6eval rakudo 8533c3: OUTPUT«120␤»
15:35 mtk left 15:36 cotto left 15:37 [1]imamelia joined 15:38 drbean left 15:39 imamelia left, [1]imamelia is now known as imamelia, drbean joined 15:42 ymasory_ joined 15:44 mtk joined, drbean left 15:45 drbean joined 15:46 ymasory left, ymasory_ is now known as ymasory 15:49 arcus_ joined 15:50 drbean left
JimmyZ rakudo:sub postfix:< >($a) { [*] 1..$a; }; say (* )(5); #is this expected? 15:51
p6eval rakudo 8533c3: OUTPUT«120␤»
15:51 arcus left
moritz no, I think whitespace in operators is disallowed 15:51
15:51 drbean joined
JimmyZ rakudo:sub postfix:< >($a) { [*] 1..$a; }; say (* )(5); # SBC case 15:53
p6eval rakudo 8533c3: OUTPUT«120␤»
JimmyZ std:sub postfix:< >($a) { [*] 1..$a; }; say (* )(5); 15:56
p6eval std 3468e14: OUTPUT«Use of uninitialized value $starter in concatenation (.) or string at /usr/local/share/perl/5.10.1/CursorBase.pm line 2754.␤Use of uninitialized value $stopper in concatenation (.) or string at /usr/local/share/perl/5.10.1/CursorBase.pm line 2754.␤Use of uninitialized value
..$starte…
15:56 drbean left 15:58 drbean joined
colomon rakudo: say 4 & 5 == 4 & 5 15:59
p6eval rakudo 8533c3: OUTPUT«all(all(Bool::True, Bool::False), all(Bool::False, Bool::True))␤»
16:01 Kovensky left 16:02 drbean left 16:04 drbean joined, [Coke] left 16:06 [Coke] joined 16:09 drbean left 16:10 drbean joined 16:11 [Coke] left
moritz colomon: don't even start telling beginners about junctions 16:11
rakudo: say so 4 & 5 == 4 & 5
p6eval rakudo 8533c3: OUTPUT«Bool::False␤»
moritz rakudo: say so 4 | 5 == 4 & 5 16:12
p6eval rakudo 8533c3: OUTPUT«Bool::True␤»
16:12 [Coke] joined
colomon Should I just leave that bit out? I did write up two slides for it. 16:13
moritz IMHO they are rather confusing for beginners
and they tend to spend way too much time on it, and then are disappointed in the end 16:14
colomon IMO they are confusing, period. :)
And I have the impression the entire p6 community spent too much time on them, so fair enough.
those slides are now gone. 16:15
16:15 drbean left, Kovensky joined 16:16 JimmyZ left, drbean joined 16:21 drbean left 16:23 justatheory joined, drbean joined
colomon rakudo: my @a = 1..52; my @b = @a.shift(5); say ~@b 16:23
p6eval rakudo 8533c3: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in 'List::shift' at line 2906:CORE.setting␤ in main program body at line 22:/tmp/ctPkOjZ3zJ␤»
16:27 drbean left 16:29 drbean joined, arcus joined 16:30 plobsing joined 16:31 Tedd1 left 16:34 drbean left 16:35 drbean joined 16:40 drbean left 16:41 drbean joined 16:46 drbean left 16:48 drbean joined 16:51 drbean left 16:52 mberends left 16:54 drbean joined 16:58 drbean left 17:00 drbean joined 17:05 drbean left, mberends joined 17:06 drbean joined 17:11 MayDaniel joined, drbean left 17:13 drbean joined 17:17 arcus left, colomon left 17:18 drbean left 17:19 drbean joined 17:22 Helios left 17:24 drbean left 17:25 Helios joined 17:26 drbean joined 17:30 orafu left, drbean left 17:32 drbean joined, orafu joined 17:35 MayDaniel left 17:36 drbean left 17:38 drbean joined 17:40 leprevost left 17:42 Helios left, Helios joined, drbean left 17:44 drbean joined 17:47 drbean left 17:51 drbean joined 17:55 drbean left 17:57 drbean joined, arcus_ left 18:01 cotto joined, drbean left 18:03 drbean joined 18:04 jaldhar left, jaldhar joined 18:07 pamera joined 18:08 drbean left 18:10 drbean joined 18:11 whiteknight left 18:13 ymasory left 18:14 drbean left 18:15 drbean joined 18:20 drbean left, justatheory left 18:21 drbean joined 18:26 drbean left 18:27 drbean joined 18:29 Helios left, Helios joined 18:32 drbean left 18:34 drbean joined 18:38 Sonja joined 18:39 drbean_ joined, drbean left 18:44 drbean_ left, drbean joined 18:45 Helios left 18:47 orafu left, Helios joined 18:48 drbean left 18:50 drbean joined 18:51 orafu joined 18:55 drbean left 18:57 drbean joined, mj41 joined, Helios left 18:59 cotto left, orafu left 19:00 orafu joined 19:01 drbean left 19:02 Helios joined, Sonja left 19:03 Sonja joined, drbean joined 19:04 noganex_ joined 19:07 noganex left, drbean left 19:09 drbean joined 19:14 drbean left 19:16 drbean joined 19:21 drbean left, donri joined 19:22 drbean joined 19:26 drbean left 19:28 SHODAN joined, drbean joined, justatheory joined 19:34 drbean left, risou left 19:35 drbean joined 19:39 drbean left 19:41 drbean joined 19:42 pjcj left 19:43 pamera left, Sonjaaa joined, risou joined 19:44 Sonjaaa left 19:45 drbean left 19:46 drbean joined, Sonja left 19:50 drbean left 19:51 drbean joined 19:54 pmurias left 19:56 drbean left 19:57 bluescreen10 joined 19:58 drbean joined 20:02 drbean left 20:04 drbean joined 20:05 ymasory joined 20:08 drbean left 20:09 drbean joined 20:12 risou left 20:13 molaf left 20:14 drbean left, drbean joined 20:16 dorlamm joined 20:19 drbean left 20:21 drbean joined 20:25 drbean left 20:26 drbean joined 20:27 imamelia left 20:30 drbean left 20:31 drbean joined 20:34 alester joined 20:36 drbean left 20:37 drbean joined 20:38 pjcj joined 20:42 drbean left 20:43 drbean joined 20:47 drbean left 20:49 Tedd1 joined, drbean joined 20:50 mberends left 20:53 drbean left, justatheory left 20:54 justatheory joined
masak JimmyZ++ # whitespace op bug 20:54
masak submits rakudobug
rakudo: say (* )(5)
p6eval rakudo 8533c3: OUTPUT«invoke() not implemented in class 'Whatever'␤ in main program body at line 22:/tmp/B33jnbC8fQ␤»
20:55 drbean joined 20:56 mj41 left 20:58 justatheory left 20:59 drbean left 21:02 drbean joined 21:03 mberends joined 21:06 drbean left 21:07 drbean joined 21:11 drbean left 21:12 drbean joined 21:13 [particle] joined 21:14 [particle]1 left 21:17 wamba joined, drbean left
lue hello world, finally! o/ 21:17
masak lue!!\o/!!
21:19 drbean joined
masak rakudo: say "lue is back! oh {<joy noes>.pick}!" 21:20
p6eval rakudo 8533c3: OUTPUT«lue is back! oh noes!␤»
masak :)
frettled (:
lue Can't wait for the next Doctor Who episode (in ≈4 hours!) 21:22
rakudo: say "lue is back! oh {<joy noes>.pick}!" 21:23
p6eval rakudo 8533c3: OUTPUT«lue is back! oh joy!␤»
21:23 drbean left
masak rakudo: say "Doctor {<Who What Where Why When>.pick}?" 21:23
p6eval rakudo 8533c3: OUTPUT«Doctor Where?␤»
lue rakudo: say Doctor.WHO 21:24
p6eval rakudo 8533c3: OUTPUT«Could not find sub &Doctor␤ in main program body at line 22:/tmp/x7tAQTDlnA␤»
lue aw, not even Perl6 knows his name :(
21:25 drbean joined 21:28 icwiener left
lue Anyone bother messing with my Pod6 reader lately? :) 21:29
21:29 Limbic_Region joined 21:30 drbean left, spam_ joined
masak lue: no; did you leave an encouragement somewhere for people to do that? 21:30
21:30 drbean joined, MayDaniel joined
spam_ i need to recent good reference on perl6, i also do not know alot about perl5 so I need to know if I should learn it too to learn perl6. 21:31
masak spam_: hello. 21:32
spam_: it helps to know Perl 5, but it's not necessary.
spam_ masak: hello.
lue I think I did, but just a weak one in my blog post.
masak spam_: as to good references, may I recommend perl6.org ?
spam_: from there, you can reach other good resources, such as the Advent Calendar and Rosetta Code. 21:33
lue spam_: I haven't learned any Perl5 and I'm doing just fine.
21:33 justatheory joined
tylercurtis knows Perl 5 mostly as a backend for his internal Perl 6 compiler. 21:33
masak :) 21:34
spam_ I know python but not sure that will help with perl6. I always wanted to check perl6 but always got this feeling that learning perl6 without knowing perl5 is a waste of time...
21:34 y3llow left
masak it's certainly not a waste of time. 21:34
21:34 drbean left
masak and knowing Python will help you in many cases too. 21:34
21:34 y3llow joined
masak rakudo: my $a = 5; say 2 < $a < 8 21:34
p6eval rakudo 8533c3: OUTPUT«Bool::True␤»
masak that's a Python feature, right? :) 21:35
TimToady and Perl 6 := is basically identical to Python assignment
21:35 drbean joined
spam_ ah! found a pdf named using perl6. seems nice.. 21:35
tylercurtis TimToady: really? 21:36
masak spam_: yes, it's a book in progress. but you'll find a lot in there.
lue TimToady: there is nothing like binding (:=) in Python. That's why I came to Perl6.
(nothing easy to use, anyway)
tylercurtis rakudo: my $x = 5; my $y := $x; say :$x, :$y; $x = 6; say :$x; :$y; 21:37
p6eval rakudo 8533c3: OUTPUT«2 unexpected named parameters passed (x, y)␤ in 'say' at line 5828:CORE.setting␤ in main program body at line 22:/tmp/ouA4pd9pRv␤»
TimToady au contraire, = in Python is scalar := in Pelr 6
*Perl 6 even
tylercurtis rakudo: my $x = 5; my $y := $x; say (:$x, :$y); $x = 6; say (:$x; :$y);
TimToady is supposed to be, not necessarily what rakudo does right now
p6eval rakudo 8533c3: OUTPUT«x 5y 5␤y 6␤»
tylercurtis rakudo: my $x = 5; my $y := $x; say (:$x, :$y); $x = 6; say (:$x, :$y); 21:38
p6eval rakudo 8533c3: OUTPUT«x 5y 5␤x 6y 6␤»
tylercurtis TimToady: what should that output?
TimToady that looks correct to me 21:39
21:39 spam_ left 21:40 drbean left
tylercurtis TimToady: The equivalent Python program (replacing := with =) results in x = 6 and y = 5. 21:41
masak rakudo: say join ' ', <be bop>.roll(4), <bi bop!>
p6eval rakudo 8533c3: OUTPUT«bop bop be bop bi bop!␤»
21:42 drbean joined
TimToady yes, but you also have to replace = with something Python doesn't have 21:42
tylercurtis ah, true.
lue assumes that something is binding. 21:44
TimToady Python has binding; it doesn't support assignment in the sense that Perl does 21:46
masak lue: what TimToady is saying is that Python does have binding, and spells it '='.
lue: what it doesn't have is assignment, in the form Perl 6 does. 21:47
21:47 drbean left
tylercurtis TimToady: In what way is this distinguishable from having assignment, but not binding? 21:47
masak lue: it's a bit similar to nqp, which also only has binding. but nqp spells it ':='
dalek d: 9f27365 | larry++ | CursorBase.pmc:
Disallow null operators
21:48 drbean joined
lue Then what Python mustn't have done the action-at-a-distance part in the way := does. 21:49
masak lue: it can't, if all you have is binding. 21:50
lue: you can only do that when you have binding *and* assignment.
TimToady tylercurtis: it lacks copy semantics in places where a Perl programmer would expect it
such as: a = [1,2,3]; b = a; b[0] = 42; print a # [42,2,3]
masak rakudo: my $a = [1,2,3]; my $b = $a; $b[0] = 42; say $a.perl 21:51
p6eval rakudo 8533c3: OUTPUT«[42, 2, 3]␤»
masak stands arms akimbo :)
21:52 never joined
TimToady there may be a better example :) 21:52
21:52 drbean left
masak rakudo: say "never!" 21:52
p6eval rakudo 8533c3: OUTPUT«never!␤»
never top of the evening to you all :)
lue So it's beause Python never made a distinction, not that it was w/o binding, that I got frustrated and switched to P6? 21:53
masak lue: I guess we will never know :)
21:54 drbean joined, am0c joined
lue Well, what did it for me was lack of switch statements (could you imagine typing something like if opcode == 256 times? I couldn't.) 21:55
masak that's what hashes are for :) 21:56
moritz or arrays 21:57
masak or arrays, if your... what moritz said.
moritz in the case of integer opcodes :-)
masak arrays are just 0-based integer special cases of hashes. :P just ask the PHP or awk folks.
21:59 drbean left
lue And I needed AAAD for the "shadow ROM" areas of the NES memory, but I could get around it with manually diverting calls to shadow memory. 21:59
22:00 drbean joined 22:03 wamba left 22:05 drbean left
masak 'AAAD'? 22:07
22:07 drbean joined
lue Action At A Distance (I was getting tired of writing it all out) 22:09
22:11 drbean left
masak lue: all problems in computer science can be solved by adding another layer of indirection. 22:11
sbp or by writing a program that adds another layer of indirection 22:12
or a framework to create programs that add new layers of indirection
masak make it an abstract framework factory. 22:13
moritz or a FrameworkFactory that helps you write framworks that ...
masak I might need more frameworks down the line.
22:13 drbean joined
masak moritz: stop thinking what I'm thinking! :P 22:13
moritz masak: stop thinking what I'm thinking! :P 22:14
masak arrrgh!
:)
frettled All programming is an exercise in caching.
(John Mashey, IIRC)
masak frettled: I don't see that one quite so easily. do you have an elucidating example? 22:15
lue
.oO(I wanted to build the framework, but I had no frame of reference...)
TimToady masak: it's hard to shift a hash
masak TimToady: yeah. I did put a smiley on that line, fwiw :) 22:16
TimToady doesn't look like a smile to me :P
frettled masak: sorry, it was Terje Mathisen, not John Mashey, that changes _everything_ ;)
masak TimToady: you would see my smile if the tongue weren't in the way :P 22:17
22:18 drbean left
frettled masak: but in general, no matter how you try to abstract things, your programming usually makes assumptions about how you handle data, which kinds and amounts of data are practical to handle, in which way 22:18
22:18 drbean joined
frettled the real quote has the «almost» prefix, though 22:19
coz Terje is really, really smart 22:20
22:20 alester left 22:22 drbean left 22:23 drbean joined 22:25 saaki left 22:27 vert2_ left, dorlamm left, Helios left 22:28 drbean left 22:29 Lorn left, Helios joined 22:30 drbean joined 22:31 Lorn joined 22:34 drbean left 22:36 drbean joined 22:37 Lorn left 22:41 drbean left 22:42 drbean joined 22:46 drbean left 22:48 drbean joined
lue [Pod6] Hm. Should I treat semantic blocks (things like TITLE and LICENSE and so on) like just another blocktype, or as a wholly separate thing? 22:51
22:53 drbean left
masak an excellent question. 22:53
please provide adequate reasons for both scenarios :) 22:54
22:54 drbean joined, cotto joined
lue thinking... 22:57
masak lue: syntactically, they're just a type of abbreviated blocks, no? 22:58
22:58 drbean left
masak so one way to factor things would be to just say "semantic blocks are abbreviated blocks whose names happen to be all-uppercase". 22:59
lue According to S26, they're like =para blocks, but with a free title (usually rendered as =head1) and semantic info for parsers. 23:00
masak right.
23:01 drbean joined
lue I'm wondering how to deal with them. Either they are separted in the grammar so they can be sorted neatly in the actions, or they're treated like any other block name with the parser responsible for figuring out which blocks are semantic during conversion. 23:02
(btw, have you ever done file * in the specs repo?)
masak I think they should be separated in the grammar iff the fact that they are semantic blocks affects the subsequent parsing. 23:03
judging from what you wrote above about =para blocks, sounds like that might be the case. though I'm not sure.
23:05 MayDaniel left, drbean left
lue I would think there are certain formats (Manpage in particular IIRC) where that semantic info is important, and having the grammar sort it out seems cleaner than having the conversion mechanism try to guess at it. 23:06
23:07 drbean joined
masak there's no doubt that by the time the Pod machinery is done building the AST, the information should be there. 23:08
the question is more: should it be the grammar or the action methods doing the tagging?
guess in the end, it doesn't matter too much. just do what falls out most easily.
rakudo: say gcd(14, 21) 23:09
p6eval rakudo 8533c3: OUTPUT«7␤»
masak jnthn: look, we already had it that way :)
rakudo: say lcm(14, 21)
p6eval rakudo 8533c3: OUTPUT«Could not find sub &lcm␤ in main program body at line 22:/tmp/mXMLN858lP␤»
masak meh.
lue I would guess the answer is 42. 23:10
I think having a separate semantic rule in the grammar is the best way to go.
jnthn masak: I wonder how deliberate that is... :)
masak rakudo: sub lcm($x, $y) { $x * $y / gcd($x, $y) }; say lcm(14, 21)
p6eval rakudo 8533c3: OUTPUT«42␤»
masak lue++ !!
23:11 drbean left
lue I memorized all the integer factors of 42 a long time ago. 1 2 3 6 7 14 21 42 [not that it's hard to memorize though :)] 23:11
masak lue: I am reluctantly impressed. 23:12
I wouldn't have though such knowledge to ever be useful. but apparently it was in exactly this case.
23:13 drbean joined, whiteknight joined
lue I think what actually happened was I read h2g2 in middle school, became fascinated with 42, and before I knew it I knew all the factors. 23:14
=head1 header\n\n is legal, right?
masak think so. 23:15
I'm equally narrowly interested in some numbers. numbers of the form 2 ** $N always fascinated me.
even more so numbers of the form 2 ** (2 ** $N)
I learned this one by heart:
niecza: say 2 ** 32 23:16
p6eval niecza v4-76-g7bf5ef9: OUTPUT«4294967296␤»
masak it's a pretty number.
jnthn ...what makes a number pretty? :)
masak just bias, I guess. :P
but I think all the numbers in that sequence are quite pretty. 23:17
rakudo: .say for map { 2 ** $_ }, 0..32
p6eval rakudo 8533c3: OUTPUT«1␤2␤4␤8␤16␤32␤64␤128␤256␤512␤1024␤2048␤4096␤8192␤16384␤32768␤65536␤131072␤262144␤524288␤1048576␤2097152␤4194304␤8388608␤16777216␤33554432␤67108864␤134217728␤268435456␤536870912␤1073741824␤2147483648␤4294967296␤»
lue I know those by heart up to 1024, 4096 if I think about it. 23:18
jnthn Beauty is in the eye of the beholder. :)
TimToady rakudo: say 2 ** 2 ** 2 ** 2 * 2 ** 2 ** 2 ** 2
p6eval rakudo 8533c3: OUTPUT«4294967296␤»
23:18 drbean left
lue rakudo: .say for map {16 ** $_ }, 0..5 23:19
23:19 drbean joined
p6eval rakudo 8533c3: OUTPUT«1␤16␤256␤4096␤65536␤1048576␤» 23:19
lue rakudo: .say for map {16 ** $_ }, 0..10
p6eval rakudo 8533c3: OUTPUT«1␤16␤256␤4096␤65536␤1048576␤16777216␤268435456␤4294967296␤68719476736␤1099511627776␤»
23:19 skangas left
masak rakudo: .say for map { 2 ** (2 ** $_) }, ^5 23:19
p6eval rakudo 8533c3: OUTPUT«2␤4␤16␤256␤65536␤»
masak rakudo: .say for map { 2 ** (2 ** $_) }, ^6
p6eval rakudo 8533c3: OUTPUT«2␤4␤16␤256␤65536␤4294967296␤» 23:20
masak a girl in high school found out about my obsession.
lue 16 ** $N is another favorite of mine. Up to 65536, with vague memories of the next two.
masak she learned this number:
rakudo: say 2 ** (2 ** 6)
TimToady what with the superstitious parens?
p6eval rakudo 8533c3: OUTPUT«1.84467440737096e+19␤»
masak heh :) 23:21
rakudo: say 2 ** 2 ** 6
p6eval rakudo 8533c3: OUTPUT«1.84467440737096e+19␤»
lue Superstition? Overuse of TI calcs?
masak TimToady: I'm too lazy to learn the associativity of **, I guess...
TimToady rakudo: say 2 ** 2 ** $_ for ^6
lue
.oO(Overuse of TeX?)
p6eval rakudo 8533c3: OUTPUT«2␤4␤16␤256␤65536␤4294967296␤»
23:22 test-1 joined
masak TimToady: it's definitely one where I don't assume that the reader of my code knows it. 23:22
TimToady: but in essence, I don't know it by heart either :)
niecza: say 2 ** 2 ** 6 23:23
p6eval niecza v4-76-g7bf5ef9: OUTPUT«1.84467440737096E+19␤»
masak bah. :)
pugs: say 2 ** 2 ** 6
p6eval pugs: OUTPUT«18446744073709551616␤»
23:23 mtk left
masak \o/ 23:23
23:23 drbean left
masak I never learned this number. 23:23
test-1 p6eval rakudo: say 1 + 1 23:24
p6eval test-1: rakudo 8533c3: OUTPUT«2␤»
TimToady ooh, ship it!
jnthn Huh, we could do that a couple of years ago... :P 23:25
23:25 drbean joined
lue I should learn all 40 digits of pi eventually. betterexplained.com/articles/learni...precision/ 23:25
masak all five of them, you mean? :) 23:26
TimToady I have it on good authority that the last digit of pi is incorrect.
sorear jnthn: (what makes a number pretty) low Kolmogorov complexity.
masak sorear: so pi is a really ugly number?
'night, pandas 23:27
jnthn sorear: whoa
23:27 masak left 23:30 drbean left 23:31 drbean joined 23:32 mtk joined
test-1 msg rakudo : say 1+2 23:32
?
msg p6eval rakudo: say 1+2 23:34
23:35 ymasory left 23:36 drbean left, Lorn joined
TimToady use /msg 23:36
but we don't mind you playing with it here, as long as you don't overdo it 23:37
23:38 drbean joined 23:41 wallberg left 23:42 drbean left 23:44 drbean joined 23:48 drbean left 23:50 drbean joined 23:54 drbean left 23:56 ashleydev joined, drbean joined 23:59 Helios left