# Programming-Idioms

Implementation
Clojure

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating resource.

Please try to avoid dependencies to third-party libraries and frameworks.

Implementation edit is for fixing errors and enhancing with metadata.

Instead of changing the code of the snippet, consider creating another Clojure implementation.

Other implementations
`import java.util.Random;`
```int pick(int a, int b){
return a + new Random().nextInt(b - a + 1);
}```
`#include <stdlib.h>`
```int pick(int a, int b)
{
int upper_bound = b - a + 1;
int max = RAND_MAX - RAND_MAX % upper_bound;
int r;

do {
r = rand();
} while (r >= max);
r = r % max;
return a + r;
}
```
`rand(a..b)`
`import "math/rand"`
```func pick(a,b int) int {
return a + rand.Intn(b-a+1)
}```
```function pick(a, b) {
return a + Math.floor(Math.random() * (b - a + 1));
}```
`import random`
`random.randint(a,b)`
`rand(\$a, \$b)`
`import util.Random`
`a + Random.nextInt(b + 1)`
```my (\$min, \$max) = (5, 25);
my \$val = \$min + int(rand(\$max-\$min));
```
```extern crate rand;
use rand::distributions::{IndependentSample, Range};```
```fn pick(a: i32, b: i32) -> i32 {
let between = Range::new(a, b);
let mut rng = rand::thread_rng();
between.ind_sample(&mut rng)
}
```
`import std.random;`
```auto x1 = uniform(a, b+1);
auto x2 = uniform!"[]"(a, b);```
`import 'dart:math';`
`int pick(int a, int b) => a + new Random().nextInt(b - a + 1);`
`Math`
```var
_a, _b, _r: Integer;
begin
_r := RandomRange(_a, _b);
end; ```
`crypto:rand_uniform(A, B)`
`import System.Random`
```let pick (a, b) = randomRIO (a, b) :: IO Integer
in pick (1, 6) >>= print

```
`:crypto.rand_uniform(a, b)`
`math.random(a, b)`
`using System;`
```Random r = new Random();
return r.next(a, b + 1);```
`a - 1 + :rand.uniform(b-a+1)`
`#include <random>`
```std::mt19937 gen;
std::uniform_int_distribution<size_t> uid (a, b);
uid (gen);
```
```real :: c
integer :: res

call random_number(c)
res = int((b-a+1)*c)
```
`use rand::distributions::Uniform;`
`Uniform::new_inclusive(a, b).sample(&mut rand::thread_rng())`
`a+arc4random_uniform(b+1)`