Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^3: index of the minimum element of the array

by oiskuu (Hermit)
on Jan 17, 2014 at 18:13 UTC ( [id://1070994]=note: print w/replies, xml ) Need Help??


in reply to Re^2: index of the minimum element of the array
in thread index of the minimum element of the array

Also take a look at List::Util for some basic examples.

use List::Util 'reduce'; sub minindex { reduce { $_[$a] < $_[$b] ? $a : $b } 0 .. $#_ }

Update: Less succinct now when fixed:

use List::Util 'reduce'; sub minindex { my @x=@_; reduce { $x[$a] < $x[$b] ? $a : $b } 0..$#_ }

Replies are listed 'Best First'.
Re^4: index of the minimum element of the array
by ikegami (Patriarch) on Jan 17, 2014 at 18:23 UTC
    You're accessing the callback's @_ when you mean to access minindex's

      I'm passing a block to reduce.

        Impossible. There's no such data type. You are passing a sub reference to reduce.
        reduce BLOCK LIST
        is compiled as
        &reduce(sub BLOCK, LIST)
        Ikegami is right, thats not working!

        Better pass the list as a closed over array (here @x)

        DB<109> @a= map { int rand 100 } 1..10 => (96, 10, 99, 9, 43, 8, 20, 85, 42, 26) DB<110> sub minindex { my @x=@_; reduce { $x[$a] < $x[$b] ? $a : $b } 0 .. $#_ } DB<111> print minindex @a 5

        update

        or even better like ikegami now suggested as ref to avoid overhead

        DB<114> @a= map { int rand 100 } 1..10 => (22, 15, 27, 44, 70, 85, +74, 93, 96, 14) DB<115> sub minindex { my $x=\@_; reduce { $x->[$a] < $x->[$b] ? $a : $b } 0 .. $#_ } DB<116> print minindex @a 9

        Cheers Rolf

        ( addicted to the Perl Programming Language)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1070994]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (5)
As of 2024-04-24 01:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found