|
Pugs 6.2.8 released! | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by autrijus on 13 July 2005. |
|||
| yrlnry | I need some advice regarding Quantum::Superpositions. I have a list of items, and I want to use Q::S to find an item X such that f(X) and g(X) are both true. $x = any(...); $z = eigenstates(f($x) && g($x)); is not at all what I want. How do I set this up? | 01:54 | |
| mugwump | is the opposite of a premature optimisation called a premature abstraction? | 03:33 | |
| ?evalbot sub f { 8 > $^x > 6 } sub g { $^x & 1 } my $x = any(1..9); sub find(Scalar $x) { if(f($x) && g($x)) { return $x } }; find($x) | 03:42 | ||
| ?eval sub f { 8 > $^x > 6 } sub g { $^x & 1 } my $x = any(1..9); sub find(Scalar $x) { if(f($x) && g($x)) { return $x } }; find($x) | |||
| evalbot6 | Error: Undeclared variable: "$^x" | ||
| mugwump | ò_ó | 03:43 | |
| this works for me in pugs 6.2.7, ho hum | 03:51 | ||
| see also examples/sendmoremoney.p6 | 03:52 | ||
| ok, that worked once | 03:53 | ||
| Khisanth | oh | 04:29 | |
| mugwump: you didn't get the news? | |||
| mugwump | Khisanth: news? | 05:44 | |
| Did someone change the semantics of junctions and autothreading on me? :) | 05:45 | ||
| Khisanth | no I mean the $^x | ||
| mugwump | oh | ||
| gone? | |||
| Khisanth | "Implicit variables like $^a now only work in bare blocks" | 05:47 | |
| nothingmuch | morning | 06:12 | |
| brentdax waves. | 06:23 | ||
| nothingmuch waves back | 06:24 | ||
| QtPlatypus waves | 06:25 | ||
| nothingmuch waves again | 06:27 | ||
| but this is the last time, my elbow hurts | |||
| Khisanth | perhaps you should try particulating :) | 06:28 | |
| nothingmuch thinks of multi-events, and multimethod event handlers | 06:29 | ||
| method get_wave ($waver when { $waver == $QtPlatipus | $brentdax }) { ./reply } | 06:30 | ||
| method get_wave (Any $waver) { } | |||
| err, s/when/where/; | |||
|
07:32
mathieu_ is now known as sphex
|
|||
| dudley | Is there a p6 equivalent to Haskell's 'import qualified'? | 07:43 | |
| e.g. 'use Foo::Bar::Baz as Baz' | 07:44 | ||
| Aankhen`` | Not as such | 07:45 | |
| . | |||
| brentdax | Glad to see you were amused, Aankhen. | 07:57 | |
| Aankhen`` | Very. =) | 07:59 | |
| nothingmuch | no strict as moose; | ||
| i think there was talk about it | 08:00 | ||
| groups-beta.google.com/group/perl.p...this+group <--- maybe this helps? | 08:02 | ||
| dudley | hmm, not quite. How can I accomplish the same thing? Refer to a fully qualified class name as a shorter name, I mean. I know I can do 'my $Baz := $Foo::Bar::Baz', but I don't like the sigils in my class names. | 08:13 | |
| brentdax | dudley: There's been lots of talk about supporting C< ::Baz ::= (use Foo::Bar); >, but I somewhat doubt Pugs supports it yet. | 08:18 | |
| dudley | If I declare a class as 'our class Baz{}' within package Foo::Bar, then I can call that Baz within the package and Foo::Bar::Baz from outside the package, right? | 08:25 | |
| brentdax | Yeah, but once again I think Pugs doesn't support that yet. | 08:30 | |
| dudley | Just wanted to make sure it'll work someday :-) | 08:32 | |
| sleep & | 08:34 | ||
| brentdax | How much support does Pugs have for YAML? | 10:13 | |
| luqui | poke | 11:03 | |
| anybody who knows haskell | 11:04 | ||
| brentdax | I'm afraid I'm firmly on the camel side of the camp. | 11:12 | |
| mugwump | I saw an HS-plugin yaml bit, don't know how far it got | 11:19 | |
| luqui | hmm? | 11:20 | |
| that sentence parsed, but my semantic analyzer segfaulted | 11:21 | ||
| wolverian | it was re: 13:13 brentdax : How much support does Pugs have for YAML? | 11:24 | |
| (probably :) | |||
| luqui | ah | ||
| how do you check if a sub is defined? | 11:28 | ||
| in either pugs or perl 6 (preferrably already implemented) | |||
| Aankhen`` | ?eval sub foo { 1 }; defined &foo | 12:01 | |
| evalbot6 | bool::true | ||
| Aankhen`` | ?eval sub foo { 0 }; defined &foo | ||
| evalbot6 | bool::true | ||
| Aankhen`` | ?eval defined &foo | ||
| evalbot6 | Error: Undeclared variable: "&foo" | ||
| Aankhen`` | luqui: There you go. | ||
| luqui | oh my | 12:04 | |
| that was, um, obvious | |||
| I was using exists() | |||
| thanks | |||
| wolverian | can I check for specific signatures like that too? | ||
| Aankhen`` | ?eval sub foo { 0 }; exists &foo | ||
| evalbot6 | Error: No compatible subroutine found: "&exists" | ||
| luqui | oh wait | ||
| that's no good | |||
| wolverian | ?eval sub foo () { 1 } defined &foo:() | ||
| evalbot6 | Error: unexpected ":" expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
| luqui | I need it to return bool:false when it's not defined, not die | 12:05 | |
| Aankhen`` | ?eval sub foo (Str $bar) { 0 }; defined &foo:<Str> | ||
| evalbot6 | Error: unexpected ":" expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
| wolverian | I _think_ larry has been using :() lately, but I'm not sure | ||
| Aankhen`` | wolverian: I think you can't yet grab a particular variant. | ||
| ?eval sub foo (Str $bar) { 0 }; defined &foo:(Str) | |||
| evalbot6 | Error: unexpected ":" expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
| wolverian | Aankhen``, right. thanks :) | ||
| luqui | ?eval defined &main::foo | ||
| evalbot6 | bool::true | ||
| Aankhen`` | luqui: Wrap it in a try { ... }? | ||
| luqui | whoops | ||
| hmm | |||
| Aankhen`` | Or that. | ||
| Hrm, one sec. | 12:06 | ||
| wolverian | ?eval sub foo { 0 } if try { &foo } { "ok" } | ||
| evalbot6 | Error: unexpected "i" expecting ";", statements or end of input reserved word | ||
| wolverian | ?eval sub foo { 0 }; if try { &foo } { "ok" } | ||
| evalbot6 | Error: unexpected "i" expecting ";", statements or end of input reserved word | ||
| Aankhen`` | ?eval defined %::($?PACKAGE)::<&foo> | ||
| evalbot6 | Error: unexpected "<" expecting "(", "!", "/", "^", "*", "?", ".", ":" or word character | ||
| luqui | I'm writing this from Haskell... so I think these are a little... heaviweight | ||
| I'm trying to use findSub | |||
| but it returns an Eval | 12:07 | ||
| and I'm not sure how to get that back into a boolean that haskell can look at | |||
| if that's even possible | |||
| Aankhen`` | I'm sorry, I dunno about the Haskell side. | 12:08 | |
| svnbot6 | r5786, luqui++ | r1956@jabberwock: fibonaci | 2005-07-24 06:43:57 +0000 | 12:55 | |
| r5786, luqui++ | Added an import test that is bugging the hell out of me. The test doesn't seem to be gracefully detecting failure; somehow "use" supercedes "eval"'s guards. | |||
| r5787, Stevan++ | Perl6.MetaModel - (JS version) | 13:25 | ||
| r5787, Stevan++ | * added support for next_METHOD | |||
| r5787, Stevan++ | - added test file for this | |||
| Aankhen`` | ?eval coro foo { yield "first"; yield "second"; }; (foo(), foo()) | 14:00 | |
| evalbot6 | ('first', 'second') | ||
| Aankhen`` | ?eval coro foo { yield "first"; yield "second"; }; (foo(), foo(), foo()) | ||
| evalbot6 | ('first', 'second', 'first') | ||
| Aankhen`` | ?eval coro foo { yield "first"; return "hi"; yield "second"; }; (foo(), foo(), foo()) | ||
| evalbot6 | ('first', 'hi', 'hi') | ||
| QtPlatypus | Cool we have coroteans | 14:02 | |
| Aankhen`` | Actually, we've had coroutines for quite a while, IIRC. | ||
| QtPlatypus nods | |||
| Aankhen`` | I was just wondering what happens when you put a `return` in there. | ||
| Excalibor | greetings | 14:03 | |
| Aankhen`` | Hiya. | ||
| svnbot6 | r5788, iblech++ | Usual svn properties. | 15:01 | |
| r5789, Stevan++ | Perl6::MetaModel - (P6 version) | 16:22 | ||
| r5789, Stevan++ | * moving SELF, CLASS, next_METHOD, WALKMETH, WALKCLASS to the global namespace (*::) | |||
| r5789, Stevan++ | - altered tests and files to accomidate this | |||
| r5789, Stevan++ | NOTE: This is step 1 in breaking the circularity issues with the metamodel | |||
| gaal | luqui, ping | 16:41 | |
| findSub returns Eval (Maybe VCode) | 16:42 | ||
| you can say maybeM (findSub "foo" Nothing []) | 16:44 | ||
| see findVar | |||
| luqui | what does maybeM do? | 16:46 | |
| gaal | do you know "maybe" without the M? | 16:47 | |
| luqui | not in lowercase | ||
| gaal | say you have x :: Maybe String | ||
| luqui | mmkay | ||
| gaal | you want an expresion that is the string (w/o the Just) if it's Just String | 16:48 | |
| or some default value that you specify if it's Nothing | |||
| luqui | right | ||
| gaal | demote a Maybe to a simple value, with whatever fallback makes sense in your local code. | 16:49 | |
| luqui | how is the fallback specified? | ||
| gaal | so MaybeM does the same thing with an m (Maybe foo) isntead | ||
| as one of the args | 16:50 | ||
| maybe :: a -> (b -> a) -> Maybe b -> a | |||
| maybe n f Nothing = n | |||
| maybe n f (Just x) = f x | |||
| luqui | gotcha | 16:51 | |
| okay, I'll give it a shot | |||
| maybeM just works with any monad whatever? | |||
| gaal | it's defined in Pugs.Internals. around 264 | 16:52 | |
| and it's lifted higher than Maybe | |||
| loftier than what I grok really | |||
| luqui | there's that word again | ||
| "lift" | |||
| gaal | oh that | 16:53 | |
| it has to do with the law of | |||
| nothingmuch | lift == be naughty | ||
| gaal | what do you call it | ||
| nothingmuch | use a nested monad in the transformed monad | ||
| gaal | the same law that makes sea level level | ||
| nothingmuch | e.g. ReaderT IO | ||
| liftIO inside a ReaderT IO is ok | 16:54 | ||
| gaal | interconnected vessels or something | ||
| luqui | uh | ||
| luqui smiles and nods | |||
| nothingmuch | but plain old IO is not the same type as ReaderT IO | ||
| gaal | you lift the monad thingy | ||
| your head drops to the floor | |||
| nothingmuch | but the monad already has your brain | ||
| it sucks out your eyeballs, and moves to the next victim | 16:55 | ||
| gaal | yeah, that's shiftT | ||
| when you had enough, you resetT | |||
| nothingmuch | luqui: you know the properties of >>= as far as typing goes? | ||
| luqui | I think so | ||
| nothingmuch | do { foo; foo; foo } -- all foo's are of the same type | 16:56 | |
| luqui | well, "know", not "grok" | ||
| nothingmuch | normally | ||
| well, if you are in ReaderT IO | |||
| for example. | 16:57 | ||
| or any other transformed monad | |||
| in order to safely use the type of the nested monad (IO) with a ReaderT IO type, you just wrap the call with liftIO | |||
| luqui | oh my | 16:59 | |
| nothingmuch | dinner | ||
| luqui | good thing I'm working on this | ||
| &import calling conventions are very broken | |||
| nothingmuch | luqui: see chapter 5 or so of harrorth | ||
| gaal | btw, luqui: www-users.cs.york.ac.uk/~ndm/hoogle/ | 17:02 | |
| the *very neat* thing is that you can search by type signature too, not just function name. | |||
| luqui | thanks | 17:03 | |
| gaal | try it: say (a -> b) -> [a] -> [b] in the search box and you'll get map (and some other things as well) | 17:04 | |
| Khisanth | doesn't lambdabot do that too? | ||
| gaal | "@hoogle" does | ||
| Khisanth | heh | 17:05 | |
| gaal | brb | 17:06 | |
| luqui | gaal: poke | 17:43 | |
| stevan | hey luqui, hows things? | 17:45 | |
| luqui | things are okay | 17:46 | |
| yet again trying to wrap my brain around haskell | 17:47 | ||
| stevan | luqui: I can see :) | ||
| luqui | and just think, it's all yak shaving anyway | ||
| the reason I've spent four hours staring at six lines in Parser.hs | 17:48 | ||
| is because it dies if there is no "import" when you pass arguments to "use" | |||
| I could have gotten around it just by, well, not passing arguments to "use" | |||
| svnbot6 | r5790, Stevan++ | Perl6::MetaModel - (P6 version) | ||
| r5790, Stevan++ | * added Perl6::Instance to represent instances of object | |||
| r5790, Stevan++ | * removed all circularity (at least I think I did) | |||
| r5790, Stevan++ | * Perl6::Object is now completely defined in the metamodel | |||
| luqui | I see you've just been going on the metamodel since yapc | 17:49 | |
| stevan | luqui: yup, have a Perl6, Javascript and Java version going | ||
| luqui | Javascript... that's awesome | ||
| stevan | it's starting to get there I think (assuming Larry doesn't change things again) | ||
| luqui | We can use Perl 6 to script flash :-) | ||
| stevan | yup | 17:50 | |
| have you see iblech's PIL -> JS compiler? | |||
| luqui | nein | ||
| stevan | ah | ||
| look in perl5/PILJS (i think that is the folder name) | |||
| luqui | does it have a frontend? | ||
| yes | 17:51 | ||
| sweet | 17:54 | ||
| svnbot6 | r5791, iblech++ | PIL2JS: | ||
| r5791, iblech++ | * Fixed .ref on String, Number, and Boolean objects. | |||
| r5791, iblech++ | * $foo[...] dies now if $foo isn't an array. Same for $foo{...}. | |||
| r5791, iblech++ | * Yesterday's bug, say ~@array.delete(...), is fixed now. | |||
| luqui | what's a js interpreter for linux? | 17:55 | |
| nothingmuch | mozilla spidermonkey supposedly | ||
| maybe it's not mozzilla only | |||
| e.g, has a standalone thingy | 17:56 | ||
| but you won't have any dom | |||
| Khisanth | maybe someone will write one for parrot :) | ||
| geoffb | `apt-cache show libsmjs1`, if you are on a Debian-derived linux | ||
| Khisanth, that has been discussed here and there, I think | |||
| `apt-cache search javascript | grep -i javascript` is fairly impressive | 17:58 | ||
| (to me, at least) | |||
| luqui adores gentoo | |||
| emerge spidermonkey | |||
| stevan | Khisanth: IIRC, cwest was working on one in Perl 5 (to eventually get converted/compiled to Parrot) | ||
| geoffb | luqui, OOC, is there an `apt-cache search`-equivalent for gentoo? | ||
| stevan | luqui: you can always use a browser too | ||
| iblech | geoffb: esearch | ||
| geoffb | iblech, ah | 17:59 | |
| Wheee, chapter 9, About Monads . . . | |||
| Khisanth | there is also equery | ||
| geoffb finally getting back to reading Haskell tutorials after a couple days off | |||
| nothingmuch | YAHT? | 18:00 | |
| geoffb | _A Gentle Introduction to Haskell_ | ||
| nothingmuch | ah | ||
| nothingmuch hasn't tried that one yet | |||
| geoffb | Appears to be written as a companion to the standard reference material | ||
| (Sorta like the red book is a companion to the blue book in the OpenGL world, I guess) | 18:01 | ||
| stevan | iblech: I think the JS metamodel is probably evolved enough to begin intergration | ||
| geoffb | Yayyy | ||
| iblech | stevan: Great! :) | 18:02 | |
| stevan | iblech: the big issues I can see are integrating the base container types (Array, Hash, etc) | ||
| luqui | wow... umm... pil2js is good enough to run Test.pm | ||
| I'm thoroughly impressed | |||
| geoffb | stevan, earlier you said you had P6, Java, and JS versions working -- what about the P5 version? | ||
| iblech | luqui: And many actually tests pass :) | ||
| stevan | geoffb: sorry, not p6, it's p5 | ||
| geoffb | iblech++ # giving autrijus a run for his money in implementation speed | ||
| stevan has a cold, and is pretty spacey from the meds right now :) | 18:03 | ||
| nothingmuch | meds-- | ||
| sleep++ | |||
| geoffb | stevan, yucko, hate that myself | ||
| nothingmuch | water++ | ||
| stevan | yes, water++ | ||
| luqui has to sleep now, but will be back in <=12 hours to work on the pil2p5 compiler | |||
| stevan | luqui: putter started one of those too | ||
| geoffb | luqui, yay! again | ||
| luqui | I'll look at putter's | 18:04 | |
| geoffb | stevan, is there anything left of the P6 MM? Or did it have to be completely scrapped? | ||
| luqui | I intend to write it in perl 6, if he hasn't | ||
| anyway | 18:05 | ||
| hasta luego | |||
| stevan | luqui: yes, his is in p5 | ||
| geoffb: that is mugwumps work currently | |||
| but is more a sketch, nothing works | |||
| nothingmuch | stevan: huh? | 18:06 | |
| stevan | iblech: are there JS level container types | 18:13 | |
| iblech: I see, PIL2JS.Hash | 18:14 | ||
| brentdax | Anyone want to fix my pet peeve about Pugs's error messages, and make the "no compatible sub found" error print out the argument types you passed in? | 18:15 | |
|
18:30
iwlx is now known as wilx
|
|||
| geoffb | OK, well *that* was brain-melting | 18:46 | |
| time for a break | |||
| gaal | meow | 18:51 | |
| geoffb | *yawn* OK, time for ch 10 | 19:03 | |
| Aankhen`` goes to sleep. | 19:10 | ||
| G'night. | |||
| iblech | Hm... svn.openfoundry.org down, can't checkin PIL2JS patches... | 19:24 | |
| Anyway, need to sleep now :) | |||
| Good night all :) | |||
| brentdax | Hmm...I have a hashref with some named parameters for a function. If I splat it, it seems to flatten the pairs, too. What to do, what to do... | 20:12 | |
| (d'oh.) | |||
| dudley | Can anybody point me towards an explanation of :() ? | 21:08 | |
| Khisanth | a smiley? :) | ||
| dudley | :( | 21:10 | |
| Does it mean anything? Or am I just making stuff up now? | 21:14 | ||
| dudley grows ever more confused | |||
| Khisanth | are you seeing it being used somewhere? | 21:16 | |
| dudley | No, I thought I remembered people talking about it a while back, but I might be hallucinating. | 21:17 | |
| Khisanth | dudley: perhaps you mean ::()? | 21:20 | |
| dudley | Possibly, but they were separate things in my brain. | 21:22 | |
| Khisanth | hmm both ::() and :() appears in the log | 21:23 | |
| dudley: I guess you can asl wolverian :) | 21:24 | ||
| brentdax | I think :() allows you to create a siglet, like :(Str, Int, Array), while ::() is the symbolic dereferencer. Could be wrong about the former, though. | 21:29 | |
| dudley | Aha! it is a siglet! | 21:50 | |
| groups-beta.google.com/group/perl.p...&hl=en | |||
| brentdax++ | |||
| coral | (darren duncan)++ # "I will | 21:53 | |
| (darren duncan)++ # "assume that =:= is the definitive answer until the official docs | |||
| decide to unambiguously say otherwise. " | |||
| coral has no idea how that worked out from a single paste keystroke | |||
| Khisanth | you pasted a newline char :) | 21:55 | |
| coral | it filled in the karma from the previous line, though | 22:02 | |
| like autointent through irssi somehow | |||
| (er, indent) | |||
| geoffb pops back out of the left branch (haskell) and heads for the right branch (forth) of his postorder harrorth traversal | 22:53 | ||
| Anyone have a recommendation of which forth interpreter to learn with? Or are the various options fairly close to equivalent? | 22:57 | ||
| A short apt search shows pfe, kforth, gforth, pforth, and yforth . . . . | 22:58 | ||
| mugwump | OpenBOOT? | 23:00 | |
| coral | searching for an answer i found a tangent | ||
| geoffb | heh, I think my wife would actually like to be able to use her Mac at the same time I'm learning forth . . . | ||
| coral | angg.twu.net/forth.html # Tcl<->PForth | ||
| geoffb | OK, yforth seems to knock itself out (the package description says "For general Forth programming or learning under Linux, yForth? is not the best choice.") | 23:01 | |
| ?eval ([|] <pfe kforth gforth pforth yforth>).pick | 23:02 | ||
| evalbot6 | Error: Cannot reduce() using a unary or nullary function. | ||
| geoffb | ?eval <pfe kforth gforth pforth yforth>.pick | 23:03 | |
| evalbot6 | 'pforth' | ||
| coral | www.softsynth.com/pforth/pf_tut.htm # pforth tutorial | ||
| heh | |||
| nice | |||
| geoffb | and there you go | ||
| coral | that felt a lot like hitting a small jackpot | ||
| geoffb | heh | ||