[#4766] Wiki — "Glen Stampoultzis" <trinexus@...>

21 messages 2000/09/04
[#4768] RE: Wiki — "NAKAMURA, Hiroshi" <nahi@...> 2000/09/04

Hi, Glen,

[#4783] Re: Wiki — Masatoshi SEKI <m_seki@...> 2000/09/04

[#4785] Re: Wiki — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/09/05

Howdy,

[#4883] Re-binding a block — Dave Thomas <Dave@...>

16 messages 2000/09/12

[#4930] Perl 6 rumblings -- RFC 225 (v1) Data: Superpositions — Conrad Schneiker <schneik@...>

Hi,

11 messages 2000/09/15

[#4936] Ruby Book Eng. translation editor's questions — Jon Babcock <jon@...>

20 messages 2000/09/16

[#5045] Proposal: Add constants to Math — Robert Feldt <feldt@...>

15 messages 2000/09/21

[#5077] Crazy idea? infix method calls — hal9000@...

This is a generalization of the "in" operator idea which I

17 messages 2000/09/22

[#5157] Compile Problem with 1.6.1 — Scott Billings <aerogems@...>

When I try to compile Ruby 1.6.1, I get the following error:

15 messages 2000/09/27

[ruby-talk:4955] Re: Conway's Quantum Superpositions

From: Mathieu Bouchard <matju@...>
Date: 2000-09-17 04:06:03 UTC
List: ruby-talk #4955
> |>         if (any(@value) < 10) { ... }
> |>         die unless all(@tests)->($data);
> |> ought to be available to all Perl users.
> 
> This can be easily accomplished by the method like
>   module Enumerable
>     def any; self.each do |item| return true if yield(item); end
>       return false; end
>     def all; self.each do |item| return false unless yield(item); end
>       return true; end; end
> Pretty easy huh?

The two are somewhat different. What you propose is two short-circuited
applications of Enumerable#inject (See end of faq). I would like to see
them in Enumerable (but I would like to see #inject before that)

(insert strong australian accent here)

What Damian proposes is that instead of wrapping an expression in a bunch
of any/all blocks, you could insert "any" and "all" specifiers _inside_
the expression. This could mean that [1,2,3].any would do is mimic all the
objects it contains at once, and that every message sent to that
collective would be dispatched to all contained objects, and their results
would be combined in a new "any" object containing all the results;
eventually, when the value of a Boolean Collective is observed, something
magical happens ("collapsing of states") which OR's the members of the
Collective together and gives a result.

Damian says it's to emulate quantum-computing constructs in a current
computer, but I think he's really trying to market Prolog/Icon's
goal-directed programming concepts to the Perl masses.

I admit I have some difficulty separating the concepts of inject-based
functions and goal-directed computing, from a point of view of result
(maybe because it's been a while since i last used/seen
goal-directedness, apart from regexps). The notation and execution is
however different. 

I'd like it very much if someone would post examples of a goal-directed
expression that is non-trivial (or convoluted) to write using Matz'
any/all functions.

PS: now that I think of it, collapsed 'true' booleans in expressions
containing 'any' are tagged with the values of 'any' that produced the
'true'... or something like that.

matju



In This Thread