»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by sjohnson on 21 August 2009.
00:00 jaldhar joined
quietfanatic The thing is it's not obvious whether positive should be right or left. 00:00
TimToady that's one of the things Perl 6 can't do--fix your comments
sjohnson hehe
TimToady it's obvious if you consider shift to be more natural than unshift 00:01
sjohnson rakudo: say <ART2 BIO1 BIO3>.rotate(1); # a statement will be executed 00:02
p6eval rakudo 0d4fe0: OUTPUT«BIO1BIO3ART2␤»
TimToady actually, by the time it gets to the comment, it's already done it :P 00:03
(not really)
quietfanatic It's the parser that sees the comment
yeah
sjohnson just had to clean up my act there 00:04
jnthn gains a 64-bit Linux box to test Rakudo on too 00:05
TimToady quick, rewrite all the numeric code to use rat64s
jnthn Can't. Too tired from screwing with mail server migration. :-P 00:06
jnthn was going to send a test mail to make sure it worked on his mail accounts...only to find that a spam got there first. :-/ 00:07
meh. make spectest runs a bunch faster on this box too 00:08
Limbic_Region oh just what we need, an even more productive jnthn 00:12
jnthn :-P
oh 00:13
Probably because I never got parallel testing running locally
And it probably works out of the box here.
Limbic_Region were you on a winblows box before?
Limbic_Region wrote a hack for the pugs harness using Parallel::ForkManager to get it running in parallel there 00:14
00:14 explorer left
jnthn Limbic_Region: I still am, I just got a Linux box in a data center to run various things on that I like remote access to wherever I am. 00:33
00:37 rba left 00:45 carlin joined 00:48 justatheory left 00:55 tak11 left
pugs_svn r28075 | lwall++ | [STD] don't complain about ?: unless there's a : before the next ; 00:57
r28075 | [STD] don't guess on suspicion of two terms in a row, just check it already.
TimToady gah, now I'll have to remember to put a blank line first to keep my [STD]'s lined up... 01:05
lisppaste3 colomon pasted "DRY-violating spectests?" at paste.lisp.org/display/86106 01:12
colomon When I was messing around with Any.sin today, I stumbled across a scad of tests that look like this in trig.t.
All the repetition makes my teeth hurt. 01:13
And it's not testing a lot of cases. 01:14
lisppaste3 colomon annotated #86106 "Maybe a better approach?" at paste.lisp.org/display/86106#1 01:18
colomon (I may have the hash creation syntax mucked up, but that's just a matter of running it through rakudo and seeing what works.) 01:19
The big advantage of doing it this way is it is vastly easier to add additional tests -- what happens if you're not in the principle domain of sin. Does $x.sin work like sin($x)? Etc. 01:20
Does that seem reasonable? I'm very new to Perl testing, and may still be missing nuances... 01:22
01:26 Whiteknight left
TimToady it's easier to fudge out individual tests when they're not table driven, is one consideration 01:31
probably not important in this case
colomon Yeah, it would be very weird to have sin work except for 180 degrees, or something like that.
rakudo: say sin(3); 01:35
p6eval rakudo 0d4fe0: OUTPUT«0.141120008059867␤» 01:36
colomon rakudo: say sin("3");
p6eval rakudo 0d4fe0: OUTPUT«Return value type check failed; expected Num, but got Str␤in method Any::!to-radians (src/gen_setting.pm:371)␤called from method Num::sin (src/gen_setting.pm:1382)␤called from Main (/tmp/w0LtkNa5n3:2)␤»
pugs_svn r28076 | lwall++ | [irclog] link camelia to perl6.org now 01:38
01:40 Trey_ joined 01:42 Trey left 01:43 ssandv joined
sjohnson happy toady 01:44
lisppaste3 colomon annotated #86106 "Working full rewritten sin test plus more" at paste.lisp.org/display/86106#2 01:48
jnthn night folks
colomon That's the full sin tests from trig.t in less than half the lines, with additional tests for -360 to 0 and 360 to 720 added. 01:49
sjohnson see ya jnthn don't let the p6 bugs bite 01:51
colomon If no one has told me not to by morning, I'll add a few more tests and then commit the new version to the spectests. I can add a bunch of working and failing tests at the same time... :)
sjohnson pats colomon on the back 01:52
01:53 frew__ joined
frew__ is chamelia really trademarked? 01:55
or is that a joke?
quietfanatic All you need is the (TM) 01:58
TimToady see misc/camelia.txt 01:59
sjohnson perl 6 camel suggestion: www.manalais.com.br/blog/wp-content..._camel.jpg
frew__ where is misc? 02:00
TimToady pugs repo
frew__ yeah, I don't see it in there...
maybe I need to update
TimToady std: WHY? 02:02
p6eval std 28076: OUTPUT«===SORRY!===␤Confused at /tmp/o1chsor2Mh line 1:␤------> WHY⏏?␤ expecting any of:␤ POST␤ argument list␤ bracketed infix␤ infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤ statement
..modifier loop␤ term__S_424identi…
sjohnson TimToady: we haven't programmed it a spiritual side yet 02:03
TimToady std: WHY? 42
p6eval std 28076: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/JsYNYwZd3B line 1:␤------> WHY⏏? 42␤ expecting any of:␤ POST␤ argument list␤ bracketed infix␤ infix␤ infix stopper␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤
.. statement modifier loop␤ term…
TimToady std: WHY? not 42: 43 02:04
p6eval std 28076: OUTPUT«===SORRY!===␤Obsolete use of ?: for the conditional operator; in Perl 6 please use ??!! instead at /tmp/51ikXL2WUi line 1:␤------> WHY?⏏ not 42: 43␤Undeclared name:␤ WHY used at 1 ␤FAILED 00:02 37m␤»
sjohnson std: 1; 02:05
p6eval std 28076: OUTPUT«ok 00:02 37m␤»
sjohnson TimToady: i've asked it before, but i'd like to hear it straight from the camel's mouth. what do you think of an array collapse method 02:10
that removes blank / undef vals from the array
(undef, '', 'data1', undef, '', 'data2').collapse
like in Ruby 02:11
i can't remember how many times i've had to reinvent the wheel for this when I am splitting CSV data and i don't want blank stuff.
it was probably 1 time
( `ー´)
well, just kidding, more than 1 02:12
02:12 justatheory joined
TimToady .grep: *.defined 02:13
and such 02:14
.grep: *.true will remove '' too 02:15
.grep: ?* is even shorter
in fact, that's the same length as .collapse 02:16
though masak will prefer .grep(?*)
same length
but usually if you're using split that way in Perl 6, you should be using comb instead, and not produce the spurious values in the first place 02:17
and comb is shorter than split :) 02:18
cognominal .say for 0,1 ... { $^a + $^b if $^a < 30 } 02:22
oops
rakudo:.say for 0,1 ... { $^a + $^b if $^a < 30 }
p6eval rakudo 0d4fe0: OUTPUT«0␤1␤1␤2␤3␤5␤8␤13␤21␤34␤55␤»
sjohnson ... comb eh 02:29
sjohnson rubs his hands together
TimToady not gonna add .times either...
sjohnson TimToady, you saw right through me 02:30
you knew i was thinking about Perl technology
err Ruby
can i haz a times()?
( `ー´)
TimToady is that supposed to be a sleeping cat?
sjohnson susposed to be a squinty smiling fat face 02:31
colomon rakudo: say sin(0 + 1i);
p6eval rakudo 0d4fe0: OUTPUT«Return value type check failed; expected Num, but got Complex␤in method Any::!to-radians (src/gen_setting.pm:371)␤called from method Num::sin (src/gen_setting.pm:1382)␤called from Main (/tmp/irGqi6OEyY:2)␤»
colomon rakudo: say (0 + 1i); 02:32
p6eval rakudo 0d4fe0: OUTPUT«0+1i␤»
colomon good night all.
sjohnson ^ ^
( `ー´)
ahh failed trying to make a cat for TimToady
see ya colomon
keep up the good work
02:33 carlin left
sjohnson the reason Perl is better for me than Python, is because you can code like a ninja in it. 02:35
02:37 LionMadeOfLions left 02:38 rba joined 03:01 molaf joined 03:05 Limbic_Region left 03:10 jimmy_ joined 03:18 nihiliad left 03:20 jimmy_ is now known as JimmyZ 03:21 nihiliad joined 03:28 molaf left 03:46 r0bby joined 03:49 ihrd joined, mrsaturn joined
mrsaturn howdy, world 03:50
03:51 synth joined
ihrd mrsaturn: hi 03:53
cognominal given the longest token rule, I would expect that given a factorial fonction and sub postfix:<!!> ($x) { $x! ** 2 } I could write 3!! 03:54
TimToady should work 03:55
std: sub postfix:<+++> ($x) {...}; $_+++ 03:56
p6eval std 28076: ( no output )
TimToady std: sub postfix:<+++> ($x) {...}; $_+++
p6eval std 28076: ( no output ) 03:57
TimToady taking too long to generate the new language, I guess
std: sub postfix:<+++> ($x) {...}; $_+++
p6eval std 28076: ( no output )
TimToady anyway, works locally
03:59 meppl left
cognominal ./perl6 -e 'multi sub fact(0) { 1 } ; multi sub fact($n) { $n * fact($n-1) } ; sub postfix:<!> ($x) { fact $x }; sub postfix:<!!> ($x) { $x! ** 2 }; say 3!!' 04:00
Syntax error at line 1, near "!!"
TimToady rakudo doesn't do LTM yet 04:01
cognominal ho, I did not notice your were using STD
TimToady that parses fine with STD 04:02
cognominal cool 04:03
TimToady though really, rakudo shouldn't have failed in any case
since it would just have misparsed as .!.!
so I don't know why it failed
btw, much easier to write fact as [*] 1..4n 04:04
$n
cognominal I thought so too.
TimToady so perhaps rakudo is only allowing one postfix 04:06
quietfanatic for some reason, dot-postfix doesn't work at all.
perl6 -e 'multi postfix:<!> (0) {1}; multi postfix:<!> ($x) {$x * ($x - 1)!}; say 3.!'
TimToady rakudo: $x++--
p6eval rakudo 0d4fe0: OUTPUT«Symbol '$x' not predeclared in <anonymous> (/tmp/xUf9GDELtv:2)␤in Main (src/gen_setting.pm:3460)␤»
quietfanatic Statement not terminated properly at line 1, near ".!"
TimToady rakudo: $_++--
p6eval rakudo 0d4fe0: ( no output )
quietfanatic rakudo: say $_++--
p6eval rakudo 0d4fe0: OUTPUT«Use of uninitialized value␤␤»
TimToady might not support . on postfixes 04:07
rakudo: $_ = 0; say $_.++; say $_
quietfanatic That's what I said, only less eloquently.
p6eval rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near ".++; say $"␤in Main (src/gen_setting.pm:3460)␤»
quietfanatic (I mean I said it less eloquently)
TimToady std: $_ = 0; say $_.++; say $_
p6eval std 28076: OUTPUT«ok 00:02 38m␤»
mrsaturn rakudo: sub postfix:<.> ($x) { return $x++; } say 5.;
p6eval rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "say 5.;"␤in Main (src/gen_setting.pm:3460)␤»
TimToady std: sub postfix:<.> ($x) { return $x++; } say 5.; 04:08
p6eval std 28076: OUTPUT«===SORRY!===␤Decimal point must be followed by digit at /tmp/GWJtsX1kdx line 1:␤------> postfix:<.> ($x) { return $x++; } say 5.⏏;␤ expecting integer␤FAILED 00:04 47m␤»
mrsaturn what?
TimToady match 5. under LTM and fails 04:09
though it ought to have failed first for lack of a semi
which is what rakudo is failing on, I suspect 04:10
04:10 meppl joined
TimToady quietfanatic just figgered it out, it's the term lookahead I just put in 04:11
guess I need a try around that...
std: 42 42.
p6eval std 28076: OUTPUT«===SORRY!===␤Decimal point must be followed by digit at /tmp/SicWGveUvc line 1:␤------> 42 42.⏏<EOL>␤ expecting integer␤FAILED 00:02 37m␤» 04:12
TimToady yeah
std: 42 42abc
p6eval std 28076: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/qrEYAEdc9s line 1:␤------> 42 ⏏42abc␤ expecting any of:␤ bracketed infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 37m␤»
mrsaturn does anyone else see very wierd errors, or is it just my irc thing messing up the words?
TimToady std: 42abc
p6eval std 28076: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/bB0FIPLIj5 line 1:␤------> 42⏏abc␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤ terminator␤ whitespace␤FAILED 00:02
..37m␤»
quietfanatic mrsaturn: It's the color-coding, I think, that is not interpreted correctly by something or other. 04:13
mrsaturn thank you quietfanatic
04:15 kyle_l5l joined
quietfanatic To tell you the truth, I think the big SORRY! is a little jarring, but maybe that's because I'm not used to it. 04:16
pugs_svn r28077 | lwall++ | [STD] 2nd-term lookahead should suppress errors 04:17
TimToady it used to say PARSE FAILED
which is even more jarring, and not terribly informative to newbies
quietfanatic Well, maybe I'll just edit my own perl6 to lc the sorry or something. 04:18
TimToady and sort of comes across like "YOU LOSE!"
quietfanatic That is what FAIL means on the interweb, only a little more harsh.
TimToady at least there's an env symbol to change the eject symbol to something else :)
quietfanatic I see.
If the terminal supports color-coding the eject symbol isn't exactly necessary, unless you're looking for syntax errors between whitespace characters. 04:22
TimToady quietfanatic: the eject was for red-green colorblind folk 04:24
quietfanatic Ah. Your eyes have to support color-coding too. 04:25
"Couldn't find non-existent sub infix:::=" 04:28
Oh, I see. 04:29
It's ::= not := that's unimplemented. 04:30
TimToady I've been trying to get parrotfolx to change that notation for years now
we hates it every time we sees it 04:31
hates it, hates it, hates it
pmichaud TimToady: I might be able to change it. Is there a canonical form for a given operator? 04:42
04:44 SmokeMachine joined
quietfanatic iirc, it's category:<name> even if the name contains < or > 04:44
so like infix:<+<> for numeric bit-shift left 04:45
pmichaud I think not for < or >
I think for those one has to use a different delimiter
TimToady one could do it with <> with backslashes, but I think I'd rather see «» as an alternate 04:46
pmichaud well, parrot internally wants to have a consistent name
quietfanatic What if there's an operator with both < and «?
pmichaud we can say use single angles unless the operator name contains a single angle, but that get's a bit tricky 04:47
*gets
TimToady can always ['<', '»']
but the canonicalization is interesting
quietfanatic Perhaps backslashing is the best approach.
pmichaud that's the prime reason that Rakudo and other tools have skipped the angles altogether
because it's easily canonicalized internally
TimToady it's just not very human friendly 04:48
pmichaud my best guess about making it user-friendly was going to be to change the display name to include angles, but leave the internal name w/o the angles
TimToady needs a pill
pmichaud but I'm not entirely satisfied with that approach either. in some places the non-friendly names are just going to "leak out", no matter what we do.
04:49 quietfanatic_ joined
quietfanatic_ Sorry, Firefox Beta exploded 04:49
That's what I get for using beta.
TimToady well, I'd be happy enough with <\< \>> for canonical
quietfanatic_ I have it in the spec right here, I just need to link it...
S06:379 04:50
pmichaud we might be able to backwhack the angles
04:50 quietfanatic left
pmichaud S06:379 looks wrongish to me... is that really correct? 04:51
TimToady I think I'd prefer the backwhacks
it seems rather fossilish 04:52
quietfanatic_ Let me fix my username...
04:52 quietfanatic_ left, quietfanatic joined
quietfanatic There. 04:52
pmichaud I'm fine with what S06:379 currently says -- although I had never noticed that before. 04:53
quietfanatic: nice catch, btw.
TimToady indeed
but I think it would be good if the canonical form was .perl-safe 04:54
pmichaud it will seem very odd that the canonical for numeric greater than is 'infix:<>>'. I suspect that's not STD parse-able, though.
TimToady well, we could go with :['>'] as teh canonical form, I suppose
quietfanatic Naturally it's not, or I'd create an operater called "> ($x) { #`(do something bad) }" :) 04:55
*operator
TimToady but maybe just that form for things containing < or >, and :<> for everything else
pmichaud anyway, that's the reason parrot's tools have omitted the angles entirely until now -- just easier for consistency in the tools. 04:56
TimToady hates it...
quietfanatic But of course, infix:::= is also non-parseable.
pmichaud well, Rakudo understands how to convert infix:<::=> to its internal form 04:57
it's just a question of getting the correct name out :)
or having a consistent internal form that is parseable
TimToady even when you use %symtab.keys :)
pmichaud yes, I was thinking in that case also
TimToady so maybe just straight <> with \ 04:58
output can pretty that up if desired
pmichaud would we have any operators with \ in the token name?
or is that semi-reserved for unspace? 04:59
quietfanatic circumfix:<\\( )>
pmichaud (yes, we can backwhack it as well.)
quietfanatic ...for Captures.
TimToady std doesn't call that a circumfix, fwiw 05:01
hadn't though about unspace in <> though
seems undwimmy
unspace would disappear entirely 05:02
05:02 quietfanatic_ joined
quietfanatic_ happened again 05:02
TimToady but <foo\ bar> will be expected to mean "foo bar"
quietfanatic_ I ought to get a real irc client.
TimToady well, maybe I'll whack on S06 tomorrow after sleeping on it 05:03
pmichaud that'd be great :-)
TimToady but probably :<\< \>>
pmichaud I'm not likely to be able to make a change in the immediate future anyway. But I can start moving things in that direction. 05:04
05:04 quietfanatic left, quietfanatic_ left
cognominal .WHAT gives me the type name of a given type. But how can I know if it an enum, a class...? 05:04
pmichaud what would be the canonical Perl 6 mechanism for returning a block of type WhateverCode ? 05:05
i.e., I'm currently writing 05:06
multi sub infix:<+>(Whatever $a, $b) { -> $_ { $_ + $b } }
but I need the returned closure to be of type WhateverCode
TimToady but how to bless it, yeah...
05:07 quietfanatic joined
TimToady well, in theory, WhateverCode(-> $_ { $_ + $b } }) 05:07
quietfanatic Well I can't get ircii to work.
pmichaud oh, I might be able to get that to work. Maybe.
05:07 nihiliad left
quietfanatic ...trying irssi... 05:08
pmichaud maybe I'll just write an internal sub to do the blessing for now. We're still having issues with postcircumfix:<( )> on type objects, I think.
05:08 SmokeMachine left 05:09 quietfanatic left
TimToady I suppose in some sense WhateverCode could just be some kind of alias for Code:($) 05:11
pmichaud well, I don't think we want all Code:($) to be WhateverCode
it really seems to want a special type
05:12 quietfanatic joined
TimToady not sure 05:12
quietfanatic Is there anything special it does?
pmichaud it's special for purposes of dispatch, yes.
TimToady question is whether you want 1 + { $_ * 3 } to automatically turn into { 1 + $_ * 3 } 05:13
quietfanatic Ah...
Yes that would be helpful.
TimToady something to be said on both sides
as usual 05:14
pmichaud istr that there were some cases against having it auto-handle Code:($)
quietfanatic Well, you could always overload infix:<+>:(Num, Code) ...
but that'd be too wierd.
weird
TimToady well, it'd only be code with 1 arg 05:15
but still
(Num, Code:($))
quietfanatic speaking of which, do braces always create a Code object without running it, or are there some cases it runs?
TimToady if used as a statement, runs immediately 05:16
quietfanatic I mean, would 1 + { 3 * 4} normally run 3 * 4?
Oh
TimToady would normally be an error
since closures don't have a numeric value intrinsically
1 + do { 3 * 4 } would run
or 1 + ({3 + 4})
since inside parens is now considered a statement 05:17
which is how list comprehensions work out
quietfanatic Wait, WhateverCodes can have more than one argument, right? Like (* + *)?
TimToady ({3 + $_} for 1..10)
the block is a statement
pmichaud quietfanatic: that's still just one argument there
quietfanatic Oh, I see.
TimToady that is currently considered { $_ * $_ }
quietfanatic same * both places.
TimToady not { $^a * $^b }
HyperWhateverCode is Code:(*@) 05:18
since it can represent an arbitrary number of dimensions, 0 or more 05:19
quietfanatic so like @multidim.map({**.grep({...})})
or would that still be *.grep?
05:19 synth^2 joined
TimToady dunno, brane hertz 05:19
pmichaud I keep asking tough questions again, I think. :) 05:20
quietfanatic Well, Whatever... :)
05:21 synth left 05:23 finanalyst joined 05:30 rfordinal joined
pmichaud ls 05:35
oops
ww
JimmyZ rakudo: ('a','bb','cc').>>.chars; 05:38
p6eval rakudo 0d4fe0: ( no output )
quietfanatic rakudo: ('a', 'bb', 'cc')>>.chars 05:43
p6eval rakudo 0d4fe0: ( no output )
quietfanatic rakudo: say ('a', 'bb', 'cc')>>.chars
p6eval rakudo 0d4fe0: OUTPUT«122␤»
quietfanatic rakudo: say ('a', 'bb', 'cc').>>.chars
p6eval rakudo 0d4fe0: OUTPUT«122␤»
05:43 zamolxes left
quietfanatic oh 05:43
05:50 quietfanatic left 05:51 frew__ left
JimmyZ rakudo: say (1..20 X~ 2..20).pick; 05:52
p6eval rakudo 0d4fe0: OUTPUT«1116␤»
rakudo 0d4fe0: OUTPUT«110␤»
JimmyZ rakudo: say (1..20 X~ 2..20).pick(6); 05:56
p6eval rakudo 0d4fe0: ( no output )
mrsaturn rakudo: (1..42).pick.say; 06:01
p6eval rakudo 0d4fe0: OUTPUT«5␤»
sjohnson pats TimToady on the head 06:02
pmichaud off to sleep
be back tomorrow
mrsaturn g'night
sjohnson bye pmi 06:03
JimmyZ rakudo: (0..9).pick(9, :repl).say
p6eval rakudo 0d4fe0: OUTPUT«430427615␤»
JimmyZ rakudo: (0..9).pick(9, :repl).say
p6eval rakudo 0d4fe0: OUTPUT«295091965␤»
JimmyZ rakudo: (0..9).pick(32, :repl).say 06:04
p6eval rakudo 0d4fe0: OUTPUT«76335634188642403928309212558741␤»
mrsaturn rakudo:147.sqrt.say;
rakudo:1004.sqrt.say; 06:08
06:08 flip913 joined 06:10 mrsaturn left, mrsaturn joined
flip913 Will there be lazy hashes in Perl6 as well? S07 only talks about lazy lists. 06:10
So I'd have to build a lazy hash by a lazy list of pairs and a hash myself?
06:11 ssandv left
JimmyZ rakudo: (*..*).pick(3, :repl).say 06:12
p6eval rakudo 0d4fe0: OUTPUT«!whatever_closure!whatever_closure!whatever_closure␤»
mrsaturn rakudo: 139.sqrt.say; 06:13
flip913 jimmyz: was that the answer to my question? If so, then sorry, I don't understand
p6eval rakudo 0d4fe0: OUTPUT«11.7898261225516␤»
06:15 mrsaturn left, rfordinal left
moritz_ good morning 06:15
flip913: there are no lazy hashes, no 06:16
06:16 mrsaturn_ joined
moritz_ and hashes aren't just lists of pairs either 06:16
JimmyZ lazy lists
06:19 sri_kraih_ joined
flip913 moritz: I know that hashes are not just lists of pairs ... but that way I'd build a lazy hash. 06:20
JimmyZ flip913: I am just testing something.
flip913 remember the data already read (or computed), or read more
maybe a memoized function would be better?
06:21 meppl left
moritz_ doesn't quite understand why a normal hash won't do, and what prolbem flip913 is trying to solve 06:21
flip913 well, think about a dictionary that's on disk 06:22
where some key and value are stored
now say that i don't want to read the whole data in
but want to do accesses hash-like, ie. by a non-numeric key
so I'd think of that like a lazy hash - read until the wanted key is found (and store everything), and as soon as the key is found 06:23
stop reading until another, still unknown, key is queried
like a lazy list, when asked for the 10th element, evaluates everything before 06:24
moritz_ if you want to write that with a hash interface, you can just write your own Hash type
(in Perl 5 you'd use tie) 06:25
06:25 jauaor joined
moritz_ basically it sounds as if the interface can be normal, just the internals should be lazy 06:25
jauaor :)
06:26 mrsaturn_ left
flip913 I know that I can write that myself ... I just wanted to ask whether perl6 will help me there, ie. so that I only provide a single function returning (key, value), and the rest is done ... 06:30
But maybe that's the job of some module 06:31
06:31 eMaX joined
moritz_ presumably, yes 06:35
also notice that this would be a read-only hash then 06:36
if you supply only one function
06:36 sri_kraih left, sri_kraih_ is now known as sri_kraih 06:40 mrsaturn_ joined 06:42 thiagumohan joined, eMaX left, mrsaturn__ joined, mrsaturn__ left 06:43 mrsaturn_ left
flip913 moritz: yes, of course. 06:44
06:44 mrsaturn_ joined, mrsaturn_ is now known as mrsaturn, thiagumohan left 06:45 kent\n left, mrsaturn left, mrsaturn joined
mrsaturn yay i'm back 06:45
06:47 ihrd left, rfordinal joined 06:53 mrsaturn left 06:58 eMaX joined 07:16 RonOreck left 07:17 nbrown left 07:24 RonOreck joined, flip913 left 07:27 iblechbot joined 07:34 ejs joined 07:36 justatheory left
Matt-W Morning 07:38
moritz_ oh hai 07:39