Re: step size of nums

2008-07-11 Thread TSa

HaloO,

Mark J. Reed wrote:

For any numeric type of $x, $x++ should mean $x += 1.3.14 becomes
4.14. -3.14 becomes -2.14 (which indicates that floor() is not
involved) . 5/8 becomes 13/8.  The step size is irrelevant.  If $x is
so large that adding 1 gets lost due to the precision, then OK, ++$x
== $x.


Hmm, for this last case we could make '$x++' mean '$x += $x.step max 1'
so that for large native nums ++ makes progress. If I got Larry
correctly then Num is automatically extending precision so that the step
size remains 1.


Regards, TSa.
--

"The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
"Simplicity does not precede complexity, but follows it." -- A.J. Perlis
1 + 2 + 3 + 4 + ... = -1/12  -- Srinivasa Ramanujan


Question about .sort and .reduce

2008-07-11 Thread Patrick R. Michaud

t/spec/S29-list/sort.t has the following test:

my @a = (2, 45, 6, 1, 3);
my @e = (1, 2, 3, 6, 45);
my @s = { $^a <=> $^b }.sort: @a;
is(@s, @e, '... with closure as direct invocant');

S29 doesn't show a 'sort' method defined on block/closure
invocants... should there be?  

Note that we already have:

my @s = sort { $^a <=> $^b }, @a;
my @s = @a.sort { $^a <=> $^b };

A similar question applies for .reduce in S29-list/reduce.t :

is(({ $^a * $^b }.reduce: 1,2,3,4,5), 120, "basic reduce works (3)");

Thanks!

Pm


Re: Question about .sort and .reduce

2008-07-11 Thread TSa

HaloO,

Patrick R. Michaud wrote:

S29 doesn't show a 'sort' method defined on block/closure
invocants... should there be?  


I doubt that. And to my eyes it looks funny. Only real block
methods should be useful and since the class is mostly known
at parse time unapplicable methods should be a compile error.

   my &f = { $^a <=> $^b }.assuming($^a = 3);

   say f(3); # prints 0

Would that be valid? I mean the usuage of automatic variables
in the assuming method?



Note that we already have:

my @s = sort { $^a <=> $^b }, @a;
my @s = @a.sort { $^a <=> $^b };


Is that the adverbial block syntax? If not how
would it look?

  my @s = sort @a :{ $^a <=> $^b };

Or with a comma after @a?


Regards, TSa.
--

"The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
"Simplicity does not precede complexity, but follows it." -- A.J. Perlis
1 + 2 + 3 + 4 + ... = -1/12  -- Srinivasa Ramanujan


Re: Question about .sort and .reduce

2008-07-11 Thread Patrick R. Michaud
On Fri, Jul 11, 2008 at 03:27:26PM +0200, TSa wrote:
> >Note that we already have:
> >
> >my @s = sort { $^a <=> $^b }, @a;
> >my @s = @a.sort { $^a <=> $^b };
> 
> Is that the adverbial block syntax? If not how
> would it look?

The adverbial block syntax would be:

@a.sort:{ $^a <=> $^b };
sort(@a) :{ $^a <=> $^b };

I'm not entirely certain if any of the following 
examples with adverbial blocks would also work.  I'm guessing
they do, but could use confirmation.

sort @a, :{ $^a <=> $^b };
sort @a :{ $^a <=> $^b };
sort :{ $^a <=> $^b }, @a;
@a.sort: :{ $^a <=> $^b };

Pm