Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re: Fun with Closures

by Anonymous Monk
on Mar 25, 2003 at 02:24 UTC ( #245597=note: print w/replies, xml ) Need Help??

in reply to Fun with Closures

This is the same sort of thing you'll get if you start in with Class::Classless which is great fun. Along these lines curious perl programmers are encouraged to read E in a Walnut. The E language takes this idea further into the P2P space with faceted objects (but really you'd want to read the Walnut doc. Its short and mind-blowing if you aren't used to that sort of thing).

BTW, this is diotalevi but since I just front-paged the post I figured I'd prevent your votes from getting back to me.

Replies are listed 'Best First'.
Re: Re: Fun with Closures
by Corion (Patriarch) on Mar 25, 2003 at 08:08 UTC

    The concepts of E are indeed interesting even though most of E seems to remain a pipe dream, as the last development I could find was v0.8 of 2000.

    Another classless implementation is Test::MockObject, it also implements "dynamic classes" (in Smalltalk style) to which you can add/remove methods dynamically.

    If one is interested in Promises (the one interesting feature of E), Object::Realize::Later implements this lazy loading of objects for Perl. Promises are a really nice way to implement concurrency within a program without having to think about locking or concurrent access : If you have a possibly long running action whose (independent) results are needed later on in your program, or maybe not at all, instead of running that action in your main thread, you spawn off a second thread that produces that result in the background and immediately returns a promise to the result. As soon as you access any method/field of the (promised) result, your main thread blocks until the background thread has produced the result. This allows you to easily enable/disable concurrency by changing one line within your code, at the cost of suboptimal efficiency - partial results (such as the first 20 rows of a database) require much more work.

    perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://245597]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2022-08-18 01:10 GMT
Find Nodes?
    Voting Booth?

    No recent polls found