[svn:parrot] r35869 - trunk/languages/perl6/src/classes
[email protected] Wed, 21 Jan 2009 09:00:23 -0800 (PST)
| Newsgroups | perl.cvs.parrot |
|---|---|
| Message-ID | <[email protected]> |
Author: coke
Date: Wed Jan 21 09:00:22 2009
New Revision: 35869
Modified:
trunk/languages/perl6/src/classes/Range.pir
Log:
Add a basic version of .pick() for Range and hopefully not break anything.
Modified: trunk/languages/perl6/src/classes/Range.pir
==============================================================================
--- trunk/languages/perl6/src/classes/Range.pir (original)
+++ trunk/languages/perl6/src/classes/Range.pir Wed Jan 21 09:00:22 2009
@@ -72,6 +72,29 @@
.return ($P0)
.end
+=item pick
+
+Select an element at random from the range.
+
+=cut
+
+.sub 'pick' :method
+ .local pmc result, rand
+ rand = get_hll_global ['Any'], '$!random'
+
+ .local int from,to,diff,result
+ from = self.'from'()
+ to = self.'to'()
+ diff = to - from
+
+ $N0 = rand
+ $N0 *= diff
+
+ result = $N0
+ result += from
+
+ .return (result)
+.end
=item from()