on 78242ef help sign in
38 lines 923 B 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 flt(signal) {
17 function f(x) { return Math.random(); }
18 return A2( Signal.lift, f, signal );
19 }
21 function flts(signal) {
22 function f(x) {
23 var arr = new Array(Math.max(0,x));
24 for (var i = 0; i < x; i++) {
25 arr[i] = Math.random();
26 }
27 return List.fromArray(arr);
28 }
29 return A2( Signal.lift, f, signal );
30 }
32 return elm.Native.Random.values = {
33 range: F3(range),
34 flt: flt,
35 floatList: flts
36 };
38};