-Ofun: xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by apple-gunkies on 11 November 2005.
00:11 wolv is now known as wolverian 00:20 _meppl is now known as meppl
svnbot6 r8003 | fglock++ | * /docs/notes/laziness.txt - got Array/List difference 02:05
r8003 | fglock++ | sorted out, I think
r8004 | fglock++ | * /docs/notes/laziness.txt - correction on the example 02:29
r8004 | fglock++ | of what a flattened List looks like (a Lazy Array slice
r8004 | fglock++ | has a Generator that generates bounded Scalars)
geoffb autrijus, I know you're tanking, but what are you tanking *about*? 06:30
nothingmuch seen luqui? 08:17
jabbot nothingmuch: luqui was seen 2 days 16 hours 1 minutes 16 seconds ago
luqui hello 08:28
lisppaste3 devin pasted "Why does my Pugs build fail?" at paste.lisp.org/display/13960
luqui dunnos 08:29
nothingmuch, thanks, I've bookmarked the article 08:30
I'll get to it after my latest experiment *maniacal laugh* 08:31
08:39 integral_ is now known as integral, integral is now known as integral_ 08:40 integral_ is now known as integral
nothingmuch =) 08:56
btw, ragdoll kung fu rocks
thanks
luqui: ping 09:01
luqui pong
nothingmuch rdkf rucks
rock
s
err..
luqui haha, "rucks", can't decide?
nothingmuch you said you were expecting it
it was out when you said that, methinks
luqui well, I didn't have a PC at that point, I think
nothingmuch ah 09:02
anyway, thanks for the great reccomendation
nothingmuch has been playing on computers at friends houses & work
luqui sure. I bought it too, and I've played it a little, but haven't had time to really explore it
09:12 integral is now known as integral_ 09:14 integral_ is now known as integral
nothingmuch gaal: ping 09:40
luqui hooray, my type inferencer is working! 13:16
it does factorial correctly
nothingmuch luqui: share 13:38
luqui svn.luqui.org/svn/misc/luke/work/co...ell/typist 13:44
working on polymorphism, so you can have if Bool Int Int and if Bool Bool Bool in the same program :-/ 13:45
svnbot6 r8002 | iblech++ | Finished the svn mv lazyness.txt laziness.txt fglock++ begun. 13:46
r8003 | fglock++ | * /docs/notes/laziness.txt - got Array/List difference
r8003 | fglock++ | sorted out, I think
r8004 | fglock++ | * /docs/notes/laziness.txt - correction on the example
r8004 | fglock++ | of what a flattened List looks like (a Lazy Array slice
r8004 | fglock++ | has a Generator that generates bounded Scalars)
gaal nothingmuch: pong 13:53
nothingmuch gaal: i had a hackathonian question, buyt forgot it
gaal oaky 13:55
gaal rolls his eyes at c and praises glib/gtk
masak ?eval { say; say } (0..4) 13:59
13:59 evalbot_8000 is now known as evalbot_8004
evalbot_8004 OUTPUT[ ] bool::true 13:59
masak this should be a syntax error according to $larry 14:00
how do i write a test for something that should be a syntax error? :)
xunxin seen autrijus 14:17
jabbot xunxin: autrijus was seen 1 days 1 hours 23 minutes 10 seconds ago
xunxin seen autrijus
jabbot xunxin: autrijus was seen 1 days 1 hours 23 minutes 49 seconds ago
xunxin ?eval 1+2+3; 14:18
evalbot_8004 6
xunxin ?eval "hello,world".say
evalbot_8004 OUTPUT[hello,world ] bool::true
xunxin say "hello" 14:19
luqui hello 14:20
xunxin say "nihao\n"
luqui nihao\n
:-) 14:21
did you mean to say ?eval
xunxin o , I only test 14:22
gaal masak: put it in a stringy eval and check $! 14:31
Su-Shee Hi. 14:47
luqui hi 14:48
masak ?eval my $a = 5; given $a { when $_ < 4 { say "lower than four" } } 15:09
evalbot_8004 undef
masak ?eval my $a = 5; given $a { when $_ < 4 { say "lower than four" } default { say "higher than or equal to four" } }
evalbot_8004 OUTPUT[higher than or equal to four ] bool::true
masak this seems wrong to me
dada why? 15:10
masak oh, sorry. bad example :)
maybe i'm just confused
masak goes back to testing
dada ?eval my $a = 3; given $a { when $_ < 4 { say "lower than four" } default { say "higher than or equal to four" } }
evalbot_8004 OUTPUT[higher than or equal to four ] bool::true
dada mmm
_this_ seems wrong 15:11
masak ?eval my $a = 24; given $a { when $_ < 30 { say "lower than thirty" } }
evalbot_8004 undef
masak this too
luqui yeah, that seems pretty wrong 15:14
?eval my $a = 24; given $a { say $_; when $_ < 30 { say "lower than thirty" } }
evalbot_8004 OUTPUT[24 ] undef
luqui ?eval my $a = 24; given $a { say ($_ < 30); when $_ < 30 { say "lower than thirty" } }
evalbot_8004 OUTPUT[1 ] undef
luqui ?eval my $a = 24; given $a { when ({$_ < 30}) { say "lower than thirty" } } 15:15
evalbot_8004 OUTPUT[lower than thirty ] bool::true
luqui oh, come to think of it, that might actually be correct
24 != True, IIRC
You could make True a pattern that always returns True, but then you lose: given $a { when True {...} when False {...} } 15:16
but maybe that's a worthwhile trade-off
masak luqui: so ordinary comparisons have to be surrounded by ({ ... })? 15:22
luqui yeah 15:23
except...
?eval my $a = 24; given $a { when ({$^x < 30}) { say "lower than thirty" } }
evalbot_8004 OUTPUT[lower than thirty ] bool::true
luqui ?eval my $a = 24; given $a { when ({$^x < 20}) { say "lower than thirty" } }
evalbot_8004 undef
luqui yeah, you're actually defining an anonymous predicate sub 15:24
and then testing $sub($_)
masak yikes 15:25
pmurias ?eval my $a = 24;given $a { if $ < 30 {say "lower than thirty"} } 15:56
evalbot_8004 Error: unexpected "{" expecting operator, ":", ",", term postfix, postfix conditional, postfix loop, postfix iteration, ";" or end of input reserved word
pmurias ?eval my $a = 24;given $a { if $_ < 30 { say "lower than thirty"} }
evalbot_8004 OUTPUT[lower than thirty ] bool::true
luqui is the nly thingyou changed that space after the brace? 15:57
woah, what happened to my fingers while I was typing that?
that shouldn't be a syntax error
?eval if 1 {say "hi"}
evalbot_8004 OUTPUT[hi ] bool::true 15:58
luqui oh, no, you missed the _ in $_
good
pmurias ?eval my $a = 24;given $a { when {$^x < 30} { say "lower than thirty"} } 16:05
evalbot_8004 Error: No compatible subroutine found: "&when"
pmurias ?eval my $a = 24;given $a { when sub {$^x < 30} { say "lower than thirty"} } 16:09
evalbot_8004 Error: No compatible subroutine found: "&when"
vkon $?PUGS_VERSION 16:33
?$?PUGS_VERSION
:?$?PUGS_VERSION 16:34
svnbot6 r8005 | vkon++ | make Pugs compilable with latest GHC as well (starting from november2005 they give an error 'No context is allowed on a GADT-style data declaration')
vkon well, go read eval bot documentation... 16:35
integral ?eval $?PUGS_VERSION
evalbot_8004 \"Perl6 User\'s Golfing System, version 6.2.10, October 10, 2005 (r8004)"
integral but there's a slight clue in the bot's name now :)
vkon thanks! 16:36
masak speaking of which, what remains until pugs 6.28 ships? 16:42
Su-Shee Wie kann mich der Client offline anzeigen, wenn mich der Client online anzeigt? 16:57
Ich hasse gaim.
vkon ni men hao! wo men yi qi bian cheng ba! 17:01
Su-Shee vkon: wo hao. ;) 17:04
vkon: sorry, just wrong window. 17:05
vkon Su-Shee: good... I only understand very-very basics of Chinese, as now I am watching educational program on CCTV9 :):) 17:06
Su-Shee vkon: Me too, but I find it incredible interesting. But I have no time. :/ 17:11
vkon Su-Shee: I happen to convert video lessons to pocketPC compatible format and watching AVIs while at traffic jams, or while waiting for something... 17:18
Su-Shee: can freely share; see for example vkonovalov.ru/chinese-related/2x-25...opping.avi (not the best their lesson, but I have plenty of them :) 17:19
luqui "colored type inference" is quite powerful, now that I've had the time to mull over it 17:42
integral that's the one where colour marks the direction the info is propagating in? 17:43
luqui yeah
because that's the biggest trouble with subtyping: you don't know which subtype (or supertype) to pick for your variables
so it makes that illegal in the type system, which is cool :-) 17:44
integral so it tells you when you should be narrowing the type, and when you should be widening it. So: $a := Foo.new; would narrow $a's type to Foo, but f(5), f("foo") would make f's type something like (Int|Str) -> (forall a. a) 17:45
luqui hmm... that union type thingy is difficult 17:47
no, variables in the context (like f here, apparently) are always synthesized
so you wouldn't be inferring f's type
you'd only be checking that 5 and "foo" are subtypes of whatever f's argument was, not constructing the argument type
however, in the face of lambda, I'm not sure how that works 17:48
integral is that because we're not doing whole program analysis?
surely there you'd want to work out the glb of f's type so you can optimise it appropiately?
luqui probably. okay, it needs more mulling :-)
you mean the lub? 17:49
no, wait
integral probably, I'm not sure of the direction :)
luqui covariant
damnit
thinking is hard
:-)
*arguments* are contravariant, *returns* and variables are covariant
I recently had to switch those two in my head 17:50
svnbot6 r8006 | autrijus++ | * Pugs.Lexer - finish refactoring into maybeVerbatimBrackets. 19:01
19:45 GeJ_ is now known as GeJ
Aankhen`` goes to sleep. 19:56
G'night. 19:57
21:08 Lopo_ is now known as Lopo
pmurias why does pugs use a custom version of parsec? 21:44
nothingmuch lambda-the-ultimate.org/node/view/1134 21:50
make that: "luqui: lambda-the-ultimate.org/node/view/1134"