on 564cf4e help sign in
39 lines 1.1 kB history raw
1Elm.Native.Random = {};
2Elm.Native.Random.make = function(elm) {
4 elm.Native = elm.Native || {};
5 elm.Native.Random = elm.Native.Random || {};
6 if (elm.Native.Random.values) return elm.Native.Random.values;
8 var Signal = Elm.Signal.make(elm);
9 var List = Elm.Native.List.make(elm);
11 function range(min, max, signal) {
12 function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
13 return A2( Signal.lift, f, signal );
14 }
16 function float_(signal) {
17 function f(x) { return Math.random(); }
18 return A2( Signal.lift, f, signal );
19 }
21 function floatList(signal) {
22 function f(n) {
23 if (n < 0) return List.Nil;
24 var arr = new Array(n);
25 for (var i = n; i--; ) {
26 arr[i] = Math.random();
27 }
28 return List.fromArray(arr);
29 }
30 return A2( Signal.lift, f, signal );
31 }
33 return elm.Native.Random.values = {
34 range: F3(range),
35 float_: float_,
36 floatList: floatList
37 };
39};