Re: step size of nums
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
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
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
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