develooper Front page | perl.perl6.users | Postings from August 2020

Re: Any other way to do this

Thread Previous | Thread Next
From:
William Michels via perl6-users
Date:
August 31, 2020 20:33
Subject:
Re: Any other way to do this
Message ID:
CAA99HCwEG9Gg1O2+PmkF9rD91uuUV=-D_SQ6ewAoopvAsAK6Mg@mail.gmail.com
Sorry Radhakrishnan, for mis-spelling your name in my last post. --B.



On Mon, Aug 31, 2020 at 1:02 PM William Michels <wjm1@caa.columbia.edu> wrote:
>
> Very nice, Bruce and Daniel!
>
> I continued to hack on Rahakrishnan's code, then realized I could try
> using Bruce's grep() call as a filter:
>
> ~$ raku -e '@*ARGS.words.grep(*.Rat).sum.say;'  100 200 300 apples
> 400oranges 2kilos 18.7876 500 grams14 10stars10 sun100moon 77
> 1195.7876
>
> HTH, Bill.
>
> On Mon, Aug 31, 2020 at 12:23 PM <daniel@codesections.com> wrote:
> >
> > I like Bruce's Regex-based approach.
> >
> > Here's how I'd probably approach the problem:
> >
> > raku -e 'say [+] @*ARGS.grep(+*)' 0 100 200 300 apples 400oranges 2kilos
> > 18.7876 500 grams14 10stars10 sun100moon 77
> >
> > August 31, 2020 2:28 PM, "Bruce Gray" <robertbrucegray3@gmail.com> wrote:
> >
> > > my $is_a_number = / ^ \d+ [ '.' \d* ]? $ /;
> > >
> > > my $sum = @*ARGS.grep($is_a_number).sum;
> > >
> > > say $sum;
> > >
> > > —
> > > Hope this helps,
> > > Bruce Gray (Util of PerlMonks)
> > >
> > >> On Aug 31, 2020, at 12:22 PM, William Michels via perl6-users <perl6-users@perl.org> wrote:
> > >>
> > >> I think it looks very good, Radhakrishnan! Presumably you are happy
> > >> with the sum 1195.7876?
> > >>
> > >> ~$ raku -e 'for @*ARGS {.say if ($_.Int // 0) };' 0 100 200 300 apples
> > >> 400oranges 2kilos 18.7876 500 grams14 10stars10 sun100moon 77
> > >> 100
> > >> 200
> > >> 300
> > >> 18.7876
> > >> 500
> > >> 77
> > >>
> > >> I'm still mulling over whether or not the "!=== 0" is essential. I
> > >> have yet to mess-up the command line arguments sufficiently to require
> > >> it, and throwing a zero onto the command line seems to be handled
> > >> gracefully.
> > >>
> > >> Anyone else want to chime in?
> > >>
> > >> Best, Bill.
> > >>
> > >> On Mon, Aug 31, 2020 at 8:49 AM Radhakrishnan Venkataraman
> > >> <weorkay@gmail.com> wrote:
> > >>> Please see the following script that checks for type and sums up only the numbers passed as
> > >>> arguments to the script in the command line. I would be grateful if any improvement or furtherance
> > >>> to this script is offered. Thank you.
> > >>>
> > >>> #
> > >>> # sums the numbers given in command line arguments and prints
> > >>> #
> > >>> my $sum = 0;
> > >>> for @*ARGS
> > >>> {
> > >>> $sum += $_.Rat if $_.Int // 0 !=== 0;
> > >>> }
> > >>> say $sum;
> > >>>
> > >>> #
> > >>> # command line execution
> > >>> # perl6 cla.p6 100 200 300 apples 400oranges 2kilos 18.7876 500 grams14 10stars10 sun100moon 77
> > >>> #

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About