Re: using the newer collection types

2006-05-07 Thread Sam Vilain
Darren Duncan wrote: Also, I don't agree with the notion of a header of each relation. It has a type for each tuple item, sure, but header just sounds like the sort of thing you want in a ResultSet, not a Relation. Sam. A relation's heading is essentially the definition of the relation's

Re: using the newer collection types - Interval

2006-05-06 Thread mAsterdam
Prompted by Darren Duncan's proposal on Relation type objects I looked at http://dev.perl.org/perl6/doc/design/syn/S06.html and wondered how Interval type objects would fit in. I couldn't imagine how. Now that isn't a surprise (not for lack of imagination but for lack of perl6 knowledge). I

Re: using the newer collection types - Interval

2006-05-06 Thread Darren Duncan
At 3:06 PM +0200 5/6/06, mAsterdam wrote: Prompted by Darren Duncan's proposal on Relation type objects I looked at http://dev.perl.org/perl6/doc/design/syn/S06.html and wondered how Interval type objects would fit in. I couldn't imagine how. Now that isn't a surprise (not for lack of

Re: using the newer collection types - Interval

2006-05-06 Thread Larry Wall
On Sat, May 06, 2006 at 01:41:41PM -0700, Darren Duncan wrote: : Some people may confuse it with a Range, but I don't think so since a : Range progresses in discrete increments, while an Interval would be : continuous. No, Range objects in Perl 6 are defined to be intervals unless used in a

Re: using the newer collection types - Interval

2006-05-06 Thread James Mastros
On Sat, May 06, 2006 at 01:41:41PM -0700, Darren Duncan wrote: Some people may confuse it with a Range, but I don't think so since a Range progresses in discrete increments, while an Interval would be continuous. A range listifies to a (potentially) finite list of discrete elements, but it

Re: using the newer collection types - Interval

2006-05-06 Thread Darren Duncan
At 2:03 PM -0700 5/6/06, Larry Wall wrote (in reply): No, Range objects in Perl 6 are defined to be intervals unless used in a context that implies discrete increments, such as counting in list context. But if you say $x ~~ 1.2 ..^ 3.4 it is exactly equivalent to 1.2 = $x 3.4 The

Re: using the newer collection types - Interval

2006-05-06 Thread mAsterdam
Darren Duncan wrote: mAsterdam wrote: Prompted by Darren Duncan's proposal on Relation type objects I looked at http://dev.perl.org/perl6/doc/design/syn/S06.html and wondered how Interval type objects would fit in. I couldn't imagine how. Now that isn't a surprise (not for lack of imagination

Re: using the newer collection types - Interval

2006-05-06 Thread mAsterdam
Darren Duncan wrote: At 2:03 PM -0700 5/6/06, Larry Wall wrote (in reply): No, Range objects in Perl 6 are defined to be intervals unless used in a context that implies discrete increments, such as counting in list context. But if you say $x ~~ 1.2 ..^ 3.4 it is exactly equivalent to

Re: using the newer collection types - Interval

2006-05-06 Thread Darren Duncan
At 12:45 AM +0200 5/7/06, mAsterdam wrote: Okay, thank you both for clarifying this. Conceptually in my mind, a Range is entirely appropriate to represent a mathematical interval, but I was mistaken about Range being more constrained than it actually is. So, there you go mAsterdam; Range is

Re: using the newer collection types - Interval

2006-05-06 Thread mAsterdam
Darren Duncan wrote: At 12:45 AM +0200 5/7/06, mAsterdam wrote: Okay, thank you both for clarifying this. Conceptually in my mind, a Range is entirely appropriate to represent a mathematical interval, but I was mistaken about Range being more constrained than it actually is. So, there you

Re: using the newer collection types - Interval

2006-05-06 Thread Darren Duncan
At 2:17 AM +0200 5/7/06, mAsterdam wrote: I hope (and think) you are right about that regarding implementing relations. Using them correctly is another story though. I don't think Date, Darwen Lorentzos lightly took the step of introducing 6NF in 2003. Aside, about RVA (relation valued

Re: using the newer collection types - Interval

2006-05-06 Thread Darren Duncan
At 6:06 PM -0700 5/6/06, Darren Duncan wrote: You can do it simply, kind of like this: class Point { has Real $x; has Real $y; }; subset Interval of Range where { all( .items ).does(Real) }; Er, you should read 'Real' as 'Num' (I originally meant Rational, which no longer exists in the

Re: using the newer collection types - Interval

2006-05-06 Thread Larry Wall
On Sat, May 06, 2006 at 06:15:34PM -0700, Darren Duncan wrote: : Er, you should read 'Real' as 'Num' (I originally meant Rational, : which no longer exists in the newest S06); Rational still exists in S02--we just don't automatically promote anything to it currently. (A pragma could change that

Re: using the newer collection types - Interval

2006-05-06 Thread mAsterdam
Darren Duncan wrote: At 2:17 AM +0200 5/7/06, mAsterdam wrote: I hope (and think) you are right about that regarding implementing relations. Using them correctly is another story though. I don't think Date, Darwen Lorentzos lightly took the step of introducing 6NF in 2003. Aside, about RVA

Re: using the newer collection types

2006-05-05 Thread Sam Vilain
Darren Duncan wrote: Is there a reference for the meaning of these methods? There are many written references to these methods; just type relational algebra into Google. I will add that the first hit on such a search, the Wikipedia page on relational algebra (

Re: using the newer collection types

2006-05-05 Thread Darren Duncan
At 8:01 PM +1200 5/5/06, Sam Vilain wrote: Also, I don't agree with the notion of a header of each relation. It has a type for each tuple item, sure, but header just sounds like the sort of thing you want in a ResultSet, not a Relation. Sam. A relation's heading is essentially the definition

relations as roles (was: using the newer collection types)

2006-05-05 Thread Darren Duncan
First of all, Sam Vilain, thank you for your responses. Giving these issues more thought, I'm am now leaning towards the idea that the best way to provide relational algebra in Perl 6 is that the relation-land Tuple and Relation each be a Role which various other classes can provide to their

using the newer collection types

2006-05-04 Thread Darren Duncan
As I carry on in my spare time to implement a Relation type for Perl 6, I would like to use some of the simpler types that were added to the Synopsis recently and seem to lack a lot of explanatory details that older types have, and moreover they don't seem to be implemented yet in Pugs. So I

Re: using the newer collection types

2006-05-04 Thread Sam Vilain
Darren Duncan wrote: Speaking a little more technically, a Relation has 2 main components, its heading and its body. The heading is a set of 0..N keys (called attributes in relation-land), and the body is a set of 0..N Mappings (called tuples in relation-land), where they set of keys of each

Re: using the newer collection types

2006-05-04 Thread Darren Duncan
At 10:51 AM +1200 5/5/06, Sam Vilain wrote: Moreover, the Relation type has these operators that the Set type doesn't have: rename(), project(), restrict(), extend(), join(), divide(), summarize(), group(), ungroup(), wrap(), unwrap(), matching(), etc. Is there a reference for the meaning

Re: using the newer collection types

2006-05-04 Thread Darren Duncan
Actually, I'll add a few more things to my reply, which should be helpful ... At 5:11 PM -0700 5/4/06, Darren Duncan wrote: At 10:51 AM +1200 5/5/06, Sam Vilain wrote: Moreover, the Relation type has these operators that the Set type doesn't have: rename(), project(), restrict(), extend(),