Fix deploy size regresson
							parent
							
								
									66ae62638d
								
							
						
					
					
						commit
						0cfedcdc8d
					
				|  | @ -15,21 +15,18 @@ HELP: random-bytes* | ||||||
| { $description "Generates a byte-array of random bytes." } ; | { $description "Generates a byte-array of random bytes." } ; | ||||||
| 
 | 
 | ||||||
| HELP: random | HELP: random | ||||||
| { $values { "obj" object } { "elt" "a random element" } } | { $values { "seq" sequence } { "elt" "a random element" } } | ||||||
| { $description "Outputs a random element of the input object. If the object is an integer, an input of zero always returns a zero, while any other integer integers yield a random integer in the interval between itself and zero, inclusive of zero. On a sequence, an empty sequence always outputs " { $link f } "." } | { $description "Outputs a random element of the input sequence. Outputs " { $link f } " if the sequence is empty." } | ||||||
|  | { $notes "Since integers are sequences, passing an integer " { $snippet "n" } " outputs an integer in the interval " { $snippet "[0,n)" } "." } | ||||||
| { $examples | { $examples | ||||||
|     { $unchecked-example "USING: random prettyprint ;" |     { $unchecked-example "USING: random prettyprint ;" | ||||||
|         "10 random ." |         "10 random ." | ||||||
|         "3" } |         "3" } | ||||||
|     { $example "USING: random prettyprint ;" |  | ||||||
|         "0 random ." |  | ||||||
|         "0" } |  | ||||||
|     { $unchecked-example "USING: random prettyprint ;" |     { $unchecked-example "USING: random prettyprint ;" | ||||||
|         "-10 random ." |         "SYMBOL: heads" | ||||||
|         "-8" } |         "SYMBOL: tails" | ||||||
|     { $unchecked-example "USING: random prettyprint ;" |         "{ heads tails } random ." | ||||||
|         "{ \"a\" \"b\" \"c\" } random ." |         "heads" } | ||||||
|         "\"a\"" } |  | ||||||
| } ; | } ; | ||||||
| 
 | 
 | ||||||
| HELP: random-bytes | HELP: random-bytes | ||||||
|  | @ -74,7 +71,10 @@ ARTICLE: "random-protocol" "Random protocol" | ||||||
| { $subsection seed-random } ; | { $subsection seed-random } ; | ||||||
| 
 | 
 | ||||||
| ARTICLE: "random" "Generating random integers" | ARTICLE: "random" "Generating random integers" | ||||||
| "The " { $vocab-link "random" } " vocabulary contains a protocol for generating random or pseudorandom numbers. The ``Mersenne Twister'' pseudorandom number generator algorithm is the default generator stored in " { $link random-generator } "." | "The " { $vocab-link "random" } " vocabulary contains a protocol for generating random or pseudorandom numbers." | ||||||
|  | $nl | ||||||
|  | "The ``Mersenne Twister'' pseudorandom number generator algorithm is the default generator stored in " { $link random-generator } "." | ||||||
|  | $nl | ||||||
| "Generate a random object:" | "Generate a random object:" | ||||||
| { $subsection random } | { $subsection random } | ||||||
| "Combinators to change the random number generator:" | "Combinators to change the random number generator:" | ||||||
|  |  | ||||||
|  | @ -33,10 +33,6 @@ M: f random-32* ( obj -- * ) no-random-number-generator ; | ||||||
|         random-generator get random-bytes* |         random-generator get random-bytes* | ||||||
|     ] keep head ; |     ] keep head ; | ||||||
| 
 | 
 | ||||||
| GENERIC: random ( obj -- elt ) |  | ||||||
| 
 |  | ||||||
| : random-bits ( n -- r ) 2^ random ; |  | ||||||
| 
 |  | ||||||
| <PRIVATE | <PRIVATE | ||||||
| 
 | 
 | ||||||
| : random-integer ( n -- n' ) | : random-integer ( n -- n' ) | ||||||
|  | @ -46,18 +42,13 @@ GENERIC: random ( obj -- elt ) | ||||||
| 
 | 
 | ||||||
| PRIVATE> | PRIVATE> | ||||||
| 
 | 
 | ||||||
| M: sequence random ( seq -- elt ) | : random-bits ( n -- r ) 2^ random-integer ; | ||||||
|  | 
 | ||||||
|  | : random ( seq -- elt ) | ||||||
|     [ f ] [ |     [ f ] [ | ||||||
|         [ length random-integer ] keep nth |         [ length random-integer ] keep nth | ||||||
|     ] if-empty ; |     ] if-empty ; | ||||||
| 
 | 
 | ||||||
| M: integer random ( integer -- integer' ) |  | ||||||
|     dup sgn { |  | ||||||
|         {  0 [ ] } |  | ||||||
|         { -1 [ neg random-integer neg ] } |  | ||||||
|         {  1 [ random-integer ] } |  | ||||||
|     } case ; |  | ||||||
| 
 |  | ||||||
| : delete-random ( seq -- elt ) | : delete-random ( seq -- elt ) | ||||||
|     [ length random-integer ] keep [ nth ] 2keep delete-nth ; |     [ length random-integer ] keep [ nth ] 2keep delete-nth ; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue