on master help sign in
Random.floatList : Signal Int -> Signal [Float]

This version has been updated to work with b40f2958d43.

commit4a93227f0be1db79e91f605c1c2c3402233cf06c authorMax Goldstein <maxgoldstein1@gmail.com> dateSun 6 Oct 2013, 09:55 (13 years ago) parentde52cac
2 files changed+22−1
libraries/Native/Signal/Random.js+15−1 libraries/Random.elm+7
libraries/Native/Signal/Random.js+15−1
@@ -6,6 +6,7 @@ Elm.Native.Random.make = function(elm) {
66 if (elm.Native.Random.values) return elm.Native.Random.values;
77
88 var Signal = Elm.Signal.make(elm);
9+ var List = Elm.Native.List.make(elm);
910
1011 function range(min, max, signal) {
1112 function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
@@ -17,8 +18,21 @@ Elm.Native.Random.make = function(elm) {
1718 return A2( Signal.lift, f, signal );
1819 }
1920
21+ function flts(signal) {
22+ function f(x) {
23+ var arr = [];
24+ for (var i = x; i > 0; i--) {
25+ arr.push(Math.random());
26+ }
27+ return List.fromArray(arr);
28+ }
29+ return A2( Signal.lift, f, signal );
30+ }
31+
2032 return elm.Native.Random.values = {
2133 range: F3(range),
22− flt: flt
34+ flt: flt,
35+ floatList: flts
2336 };
37+
2438};
libraries/Random.elm+7
@@ -21,3 +21,10 @@ The new values are random numbers in [0..1).
2121-}
2222float : Signal a -> Signal Float
2323float = Native.Random.flt
24+
25+{-| Produces a new signal of lists that changes whenever the input signal
26+changes. The input signal specifies the length of the random list. Each value is
27+a random number in [0..1).
28+-}
29+floatList : Signal Int -> Signal [Float]
30+floatList = Native.Random.floatList