on master help sign in
Use new function call format in more places.
58275b0evancz
core/Native/Color.js+24−23
@@ -15,31 +15,29 @@ function complement(rgb) {
15 return toRGB(hsv);
15 return toRGB(hsv);
16}
16}
17
17
18−function hsva(h) { return function(s) { return function(v) { return function(a) {
18+function hsva(h,s,v,a) {
19− var clr = toRGB({hue:h, saturation:s, value:v});
19+ var clr = toRGB({hue:h, saturation:s, value:v});
20− clr._3 = a;
20+ clr._3 = a;
21− return clr;
21+ return clr;
22− }; }; };
23}
22}
24
23
25−function hsv(h) { return function(s) { return function(v) {
26− return toRGB({hue:h, saturation:s, value:v}); }; }; }
24+function hsv(h,s,v) { return toRGB({hue:h, saturation:s, value:v}); }
27
25
28function toHSV(rgb) {
26function toHSV(rgb) {
29− var hsv = {};
27+ var hsv = {};
30− var r = rgb._0 / 255.0, g = rgb._1 / 255.0, b = rgb._2 / 255.0;
28+ var r = rgb._0 / 255.0, g = rgb._1 / 255.0, b = rgb._2 / 255.0;
31− var M = Math.max(r,g,b);
29+ var M = Math.max(r,g,b);
32− var m = Math.min(r,g,b);
30+ var m = Math.min(r,g,b);
33− var c = M - m;
31+ var c = M - m;
34
32
35− var h = 0;
33+ var h = 0;
36− if (c === 0) { h = 0; }
34+ if (c === 0) { h = 0; }
37− else if (M === r) { h = ((g - b) / c) % 6; }
35+ else if (M === r) { h = ((g - b) / c) % 6; }
38− else if (M === g) { h = ((b - r) / c) + 2; }
36+ else if (M === g) { h = ((b - r) / c) + 2; }
39− else if (M === b) { h = ((r - g) / c) + 4; }
37+ else if (M === b) { h = ((r - g) / c) + 4; }
40− h *= 60;
38+ h *= 60;
41
39
42− return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
40+ return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
43}
41}
44
42
45function between(lo,hi,x) { return lo <= x && x < hi; }
43function between(lo,hi,x) { return lo <= x && x < hi; }
@@ -61,8 +59,11 @@ function toRGB(hsv) {
61 return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
59 return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
62}
60}
63
61
64−Elm.Native.Color = {hsva:hsva,
62+Elm.Native.Color = {
63+ hsva:F4(hsva),
65− hsv:hsv,
64+ hsv:F3(hsv),
66− complement:complement,
65+ complement:complement,
67− extract:extract};
66+ extract:extract
67+};
68+
68}());
69}());
core/Native/Keyboard.js+2−4
@@ -14,8 +14,7 @@ import List
14 return signal;
14 return signal;
15 }
15 }
16
16
17− function dir(up) { return function(down) {
17+ function dir(up, down, left, right) {
18− return function(left) { return function(right) {
19 function f(ks) {
18 function f(ks) {
20 var x = 0, y = 0;
19 var x = 0, y = 0;
21 while (ks.ctor == "Cons") {
20 while (ks.ctor == "Cons") {
@@ -30,11 +29,10 @@ import List
30 return { _:{}, x:x, y:y };
29 return { _:{}, x:x, y:y };
31 }
30 }
32 return keySignal(f);
31 return keySignal(f);
33− }}}
34 }
32 }
35
33
36 function is(key) { return keySignal(Elm.List.member(key)); }
34 function is(key) { return keySignal(Elm.List.member(key)); }
37
35
38− Elm.Native.Keyboard = { isDown:is, dir:dir };
36+ Elm.Native.Keyboard = { isDown:is, dir:F4(dir) };
39
37
40}());
38}());
core/Native/List.js+5−5
@@ -1,8 +1,8 @@
1− /**
1+/**
2− module Native.List where
2+module Native.List where
3
3
4import Native.Function
4import Native.Function
5− **/
5+**/
6
6
7(function() {
7(function() {
8 "use strict";
8 "use strict";
@@ -34,7 +34,7 @@ import Native.Function
34 function range(lo,hi) {
34 function range(lo,hi) {
35 var lst = Nil;
35 var lst = Nil;
36 if (lo <= hi) {
36 if (lo <= hi) {
37− do { lst = Cons(hi,lst) } while (hi-->lo);
37+ do { lst = Cons(hi,lst) } while (hi-->lo);
38 }
38 }
39 return lst
39 return lst
40 }
40 }
@@ -119,7 +119,7 @@ import Native.Function
119 }
119 }
120
120
121 function scanl1(f, xs) {
121 function scanl1(f, xs) {
122− xs.ctor === "Nil" ? throwError('scanl1') : return scanl(f, xs._0, xs._1);
122+ return xs.ctor === "Nil" ? throwError('scanl1') : scanl(f, xs._0, xs._1);
123 }
123 }
124
124
125 function filter(pred, xs) {
125 function filter(pred, xs) {
core/Native/Misc.js+1−1
@@ -30,7 +30,7 @@ import JSON
30 }
30 }
31
31
32 var Tuple0 = { ctor: "Tuple0" }
32 var Tuple0 = { ctor: "Tuple0" }
33− function Tuple2(x,y) { return { ctor = "Tuple2", _0:x, _1:y }; }
33+ function Tuple2(x,y) { return { ctor = "Tuple2", _0:x, _1:y } }
34
34
35 function makeSpaces(s) {
35 function makeSpaces(s) {
36 if (s.length == 0) { return s; }
36 if (s.length == 0) { return s; }
core/Native/Random.js+7−9
@@ -4,19 +4,17 @@ import Signal
4*/
4*/
5
5
6(function() {
6(function() {
7+ 'use strict';
7
8
8− function inRange(min) { return function(max) {
9+ function inRange(min, max) {
9− return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
10+ return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
10− };
11 }
11 }
12
12
13− function randomize(min) { return function(max) { return function(signal) {
13+ function randomize(min, max, signal) {
14− function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
14+ function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
15− return Elm.Signal.lift(f)(signal);
15+ return Elm.Signal.lift(f)(signal);
16− };
17− };
18 }
16 }
19
17
20− Elm.Native.Random = { inRange:inRange, randomize:randomize };
18+ Elm.Native.Random = { inRange:F2(inRange), randomize: F3(randomize) };
21
19
22}());
20}());
core/Native/Time.js+34−38
@@ -8,45 +8,41 @@ import Maybe
8
8
9 function timeNow() { return (new window.Date).getTime(); }
9 function timeNow() { return (new window.Date).getTime(); }
10
10
11− function fpsWhen(desiredFPS) { return function (isOn) {
11+ function fpsWhen(desiredFPS, isOn) {
12− var msPerFrame = 1000 / desiredFPS;
12+ var msPerFrame = 1000 / desiredFPS;
13− var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
13+ var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
14− var ticker = Elm.Signal.constant(diff);
14+ var ticker = Elm.Signal.constant(diff);
15− function tick(zero) { return function() {
15+ function tick(zero) { return function() {
16− curr = timeNow();
16+ curr = timeNow();
17− diff = zero ? 0 : curr - prev;
17+ diff = zero ? 0 : curr - prev;
18− prev = curr;
18+ prev = curr;
19− Dispatcher.notify(ticker.id, diff);
19+ Dispatcher.notify(ticker.id, diff);
20− };
20+ };
21− }
21+ }
22− var timeoutID = 0;
22+ var timeoutID = 0;
23− function f(isOn) { return function(t) {
23+ function f(isOn, t) {
24− if (isOn) {
24+ if (isOn) {
25− timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
25+ timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
26− } else if (wasOn) {
26+ } else if (wasOn) {
27− clearTimeout(timeoutID);
27+ clearTimeout(timeoutID);
28− }
29− wasOn = isOn;
30− return t;
31− };
32 }
28 }
29+ wasOn = isOn;
30+ return t;
31+ }
33− return Elm.Signal.lift2(f)(isOn)(ticker);
32+ return Elm.Signal.lift2(F2(f))(isOn)(ticker);
34− };
35 }
33 }
36
34
37− function everyWhen(isOn) { return function(t) {
35+ function everyWhen(t, isOn) {
38− var clock = Elm.Signal.constant(timeNow());
36+ var clock = Elm.Signal.constant(timeNow());
39− function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
37+ function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
40− setInterval(tellTime, t);
38+ setInterval(tellTime, t);
41− return clock;
39+ return clock;
42− };
43 }
40 }
44
41
45− function since(t) { return function(s) {
42+ function since(t, s) {
46− function cmp(a) { return function(b) { return !Value.eq(a,b); }; }
43+ function cmp(a,b) { return !Value.eq(a,b) }
47− var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
44+ var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
48− return Elm.Signal.lift2(cmp)(Elm.Signal.count(s))(dcount);
45+ return Elm.Signal.lift2(F2(cmp))(Elm.Signal.count(s))(dcount);
49− };
50 }
46 }
51 function after(t) {
47 function after(t) {
52 t *= 1000;
48 t *= 1000;
@@ -65,11 +61,11 @@ import Maybe
65 return isNaN(t) ? Elm.Maybe.Nothing : Elm.Maybe.Just(t);
61 return isNaN(t) ? Elm.Maybe.Nothing : Elm.Maybe.Just(t);
66 }
62 }
67 Elm.Native.Time = {
63 Elm.Native.Time = {
68− fpsWhen : fpsWhen,
64+ fpsWhen : F2(fpsWhen),
69− fps : function(t) { return fpsWhen(t)(Elm.Signal.constant(true)); },
65+ fps : function(t) { return fpsWhen(t, Elm.Signal.constant(true)); },
70− every : everyWhen(Elm.Signal.constant(true)),
66+ every : function(t) { return everyWhen(t, Elm.Signal.constant(true)) },
71 delay : Elm.Signal.delay,
67 delay : Elm.Signal.delay,
72− since : since,
68+ since : F2(since),
73 after : after,
69 after : after,
74 before : before,
70 before : before,
75 toDate : function(t) { return new window.Date(t); },
71 toDate : function(t) { return new window.Date(t); },