[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

[FWP] Re: [ruby-talk:4931] Re: Perl 6 rumblings -- RFC 225 (v1) Data: Superpositions (fwd)



On Mon, Sep 18, 2000 at 10:35:49AM +0000, John Carter wrote:
> This looks like a well flung gauntlet for the wizards of AUTOLOAD (or
> something)
> 
> Someone took the Perl 6 RFC 225 Data Superpositions paper and sent it to
> ruby talk.
> 
> Matz the author of ruby promptly demonstrated the power and cleanness of
> the Ruby iterators.

I don't think its quite understood *what* RFC 225 is proposing.  any()
and all() aren't just some sort of glorified grep() operators.  Its
quantum superpositions!

    # The superposition of the states 1,2 and 3 is multipled by 2.
    $result = any(1,2,3) * 2;

    # The resulting superposition of the states 2, 4 and 6 then equals
    # 2, 4 AND 6!
    if( $result == 2 && $result == 4 ) { print "two fer!" }

$result is a superposition of the states 2, 4 and 6 and equals them
all!  When you examine it, the uncertainty principle kicks in and it
collapses to a single scalar value.

Consider a test for a prime number:

    sub is_prime {
        my ($n) = @_;
        return $n % all(2..sqrt($n)+1) != 0
    }

Another example from the docs shows that superpositions may have
states which are superpositions.

[from the docs]

    More interestingly, since the individual states of a superposition are
    scalar values and a superposition is itself a scalar valu e, a
    superposition may have states that are themselves superpositions:
    
            $ideal = any( all("tall", "rich", "handsome"),
                          all("rich", "old"),
                          all("smart","Australian","rich")
                        );

(If you haven't figure out the joke, $ideal eq 'rich')

And, of course, it all happens in constant time. [1]

Read the docs for Quantum::Superpositions and you'll understand (or
maybe you won't)
http://search.cpan.org/doc/DCONWAY/Quantum-Superpositions-1.03/lib/Quantum/Superpositions.pm

Of course, if you REALLY wanted to make people's heads spin, you can
show them Lingua::Romana::Perligata, but alas, it is not yet on CPAN.


[1]  Assuming you're running this on a quantum supercomputer.

-- 

Michael G Schwern      http://www.pobox.com/~schwern/      schwern@pobox.com
Just Another Stupid Consultant                      Perl6 Kwalitee Ashuranse
When faced with desperate circumstances, we must adapt.
        - Seven of Nine

==== Want to unsubscribe from Fun With Perl?  Well, if you insist...
==== Send email to <fwp-request@technofile.org> with message _body_
====   unsubscribe