in reply to RFC: Simulating Ruby's "yield" and "blocks" in Perl

LanX,
Have you read Elian's take on coroutines? I was trying to find the excerpt from Knuth on them but my google fu is weak today so this is as close as it gets. In any event, the idea of having two cooperating processes seems like a useful feature but emulating it doesn't.

Update: Coroutine has a contrived example of how it might be beneficial.

Cheers - L~R


Comment on Re: RFC: Simulating Ruby's "yield" and "blocks" in Perl
Re^2: RFC: Simulating Ruby's "yield" and "blocks" in Perl
by LanX (Canon) on Apr 22, 2013 at 21:34 UTC
    > Have you read Elian's take on coroutines?

    Thanks a lot, not yet.

    But is this Ruby feature really demonstrating coroutines?

    We don't have multiple entry points and there's no reentering at the last suspended exit point.

    Are you maybe confusing Python's yield with Ruby's yield?

    > I was trying to find the excerpt from Knuth

    I really should start reading Knuth ...

    FWIW I demonstrated at YAPC:EU 2011 how to emulate Perl6's gather/take in Perl5.

    > the idea of having two cooperating processes seems like a useful feature but emulating it doesn't.

    Well, I think a convincing prototype which fits well into the language is the first step for implementation.

    And backwards compability is always an issue, most module authors wouldn't chose a feature which is only available in the very newest release.

    One of our perlmongers just told us at the last meeting that at work he's stuck with 5.8.6 on AIX!

    Cheers Rolf

    ( addicted to the Perl Programming Language)

      LanX,
      One of our perlmongers just told us at the last meeting that at work he's stuck with 5.8.6 on AIX!

      I am stuck with 5.8.8 on AIX with no compiler and no direct internet connection. That means no C extensions and only stand alone pure perl modules (or at least ones with small dependency trees).

      Cheers - L~R

        I am stuck with 5.8.8 on AIX with no compiler
        I feel your pain, bro. At least I can get to the net.