Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^2: Idiom to return 0 or random number of array elements

by LanX (Saint)
on Dec 07, 2012 at 05:46 UTC ( [id://1007688]=note: print w/replies, xml ) Need Help??


in reply to Re: Idiom to return 0 or random number of array elements
in thread Idiom to return 0 or random number of array elements

@array[0 ..0] is one and not zero elements!

DB<103> @array=a..f => ("a", "b", "c", "d", "e", "f") DB<104> @array[0..0] => "a"

UPDATE:

your statistical proof falls into the trap

scalar @array != scalar (LIST)

if your function() returns a one element list (0), then scalar function() will be 0, since 0 is the last element of the list.

(more detailed in Re^2: Idiom to return 0 or random number of array elements by eyepopslikeamosquito )

initializing @array = 1..10 makes it more obvious, b/c the last element of a sublist is now identical to the length!

DB<106> @array = 1 .. 10; => (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) DB<107> sub x{ return @array[ 0 .. int( rand @array ) ]; }; => 0 DB<108> $stats{ scalar( x() ) }++ for 1 .. 1000; => "" DB<109> \%stats; => { 1 => 100, 2 => 101, 3 => 108, 4 => 108, 5 => 101, 6 => 103, 7 => + 79, 8 => 98, 9 => 100, 10 => 102 }

Cheers Rolf

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (2)
As of 2024-03-19 06:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found