move random-bits* to random, work on docs
							parent
							
								
									0801dbc694
								
							
						
					
					
						commit
						0e0662ffc5
					
				| 
						 | 
				
			
			@ -40,9 +40,17 @@ HELP: random-bytes
 | 
			
		|||
} ;
 | 
			
		||||
 | 
			
		||||
HELP: random-bits
 | 
			
		||||
{ $values { "n" "an integer" } { "r" "a random integer" } }
 | 
			
		||||
{ $values { "numbits" integer } { "r" "a random integer" } }
 | 
			
		||||
{ $description "Outputs an random integer n bits in length." } ;
 | 
			
		||||
 | 
			
		||||
HELP: random-bits*
 | 
			
		||||
{ $values
 | 
			
		||||
    { "numbits" integer }
 | 
			
		||||
    { "n" integer }
 | 
			
		||||
}
 | 
			
		||||
{ $description "Returns an integer exactly " { $snippet "numbits" } " in length, with the topmost bit set to one." } ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
HELP: with-random
 | 
			
		||||
{ $values { "tuple" "a random generator" } { "quot" "a quotation" } }
 | 
			
		||||
{ $description "Calls the quotation with the random generator in a dynamic variable.  All random numbers will be generated using this random generator." } ;
 | 
			
		||||
| 
						 | 
				
			
			@ -93,6 +101,9 @@ $nl
 | 
			
		|||
"Randomizing a sequence:"
 | 
			
		||||
{ $subsection randomize }
 | 
			
		||||
"Deleting a random element from a sequence:"
 | 
			
		||||
{ $subsection delete-random } ;
 | 
			
		||||
{ $subsection delete-random }
 | 
			
		||||
"Random numbers with " { $snippet "n" } " bits:"
 | 
			
		||||
{ $subsection random-bits }
 | 
			
		||||
{ $subsection random-bits* } ;
 | 
			
		||||
 | 
			
		||||
ABOUT: "random"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,3 +23,5 @@ IN: random.tests
 | 
			
		|||
 | 
			
		||||
[ f ]
 | 
			
		||||
[ 100 [ { 0 1 } random ] replicate all-equal? ] unit-test
 | 
			
		||||
 | 
			
		||||
[ 49 ] [ 50 random-bits* log2 ] unit-test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,10 @@ M: f random-32* ( obj -- * ) no-random-number-generator ;
 | 
			
		|||
 | 
			
		||||
PRIVATE>
 | 
			
		||||
 | 
			
		||||
: random-bits ( n -- r ) 2^ random-integer ;
 | 
			
		||||
: random-bits ( numbits -- r ) 2^ random-integer ;
 | 
			
		||||
 | 
			
		||||
: random-bits* ( numbits -- n )
 | 
			
		||||
    1 - [ random-bits ] keep set-bit ;
 | 
			
		||||
 | 
			
		||||
: random ( seq -- elt )
 | 
			
		||||
    [ f ] [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue