on master help sign in
Use new function call format in more places.
commit58275b0002a5c167ae870132829b20d8e3cc447e authorevancz <info@elm-lang.org> dateSat 2 Mar 2013, 09:18 (14 years ago) parent3926066
6 files changed+73−80
core/Native/Color.js+24−23 core/Native/Keyboard.js+2−4 core/Native/List.js+5−5 core/Native/Misc.js+1−1 core/Native/Random.js+7−9 core/Native/Time.js+34−38
core/Native/Color.js+24−23
@@ -15,31 +15,29 @@ function complement(rgb) {
1515 return toRGB(hsv);
1616}
1717
18−function hsva(h) { return function(s) { return function(v) { return function(a) {
19− var clr = toRGB({hue:h, saturation:s, value:v});
20− clr._3 = a;
21− return clr;
22− }; }; };
18+function hsva(h,s,v,a) {
19+ var clr = toRGB({hue:h, saturation:s, value:v});
20+ clr._3 = a;
21+ return clr;
2322}
2423
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}); }
2725
2826function toHSV(rgb) {
29− var hsv = {};
30− var r = rgb._0 / 255.0, g = rgb._1 / 255.0, b = rgb._2 / 255.0;
31− var M = Math.max(r,g,b);
32− var m = Math.min(r,g,b);
33− var c = M - m;
27+ var hsv = {};
28+ var r = rgb._0 / 255.0, g = rgb._1 / 255.0, b = rgb._2 / 255.0;
29+ var M = Math.max(r,g,b);
30+ var m = Math.min(r,g,b);
31+ var c = M - m;
3432
35− var h = 0;
36− if (c === 0) { h = 0; }
37− else if (M === r) { h = ((g - b) / c) % 6; }
38− else if (M === g) { h = ((b - r) / c) + 2; }
39− else if (M === b) { h = ((r - g) / c) + 4; }
40− h *= 60;
33+ var h = 0;
34+ if (c === 0) { h = 0; }
35+ else if (M === r) { h = ((g - b) / c) % 6; }
36+ else if (M === g) { h = ((b - r) / c) + 2; }
37+ else if (M === b) { h = ((r - g) / c) + 4; }
38+ h *= 60;
4139
42− return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
40+ return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
4341}
4442
4543function between(lo,hi,x) { return lo <= x && x < hi; }
@@ -61,8 +59,11 @@ function toRGB(hsv) {
6159 return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
6260}
6361
64−Elm.Native.Color = {hsva:hsva,
65− hsv:hsv,
66− complement:complement,
67− extract:extract};
62+Elm.Native.Color = {
63+ hsva:F4(hsva),
64+ hsv:F3(hsv),
65+ complement:complement,
66+ extract:extract
67+};
68+
6869}());
core/Native/Keyboard.js+2−4
@@ -14,8 +14,7 @@ import List
1414 return signal;
1515 }
1616
17− function dir(up) { return function(down) {
18− return function(left) { return function(right) {
17+ function dir(up, down, left, right) {
1918 function f(ks) {
2019 var x = 0, y = 0;
2120 while (ks.ctor == "Cons") {
@@ -30,11 +29,10 @@ import List
3029 return { _:{}, x:x, y:y };
3130 }
3231 return keySignal(f);
33− }}}
3432 }
3533
3634 function is(key) { return keySignal(Elm.List.member(key)); }
3735
38− Elm.Native.Keyboard = { isDown:is, dir:dir };
36+ Elm.Native.Keyboard = { isDown:is, dir:F4(dir) };
3937
4038}());
core/Native/List.js+5−5
@@ -1,8 +1,8 @@
1− /**
2− module Native.List where
1+/**
2+module Native.List where
33
44import Native.Function
5− **/
5+**/
66
77(function() {
88 "use strict";
@@ -34,7 +34,7 @@ import Native.Function
3434 function range(lo,hi) {
3535 var lst = Nil;
3636 if (lo <= hi) {
37− do { lst = Cons(hi,lst) } while (hi-->lo);
37+ do { lst = Cons(hi,lst) } while (hi-->lo);
3838 }
3939 return lst
4040 }
@@ -119,7 +119,7 @@ import Native.Function
119119 }
120120
121121 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);
123123 }
124124
125125 function filter(pred, xs) {
core/Native/Misc.js+1−1
@@ -30,7 +30,7 @@ import JSON
3030 }
3131
3232 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 } }
3434
3535 function makeSpaces(s) {
3636 if (s.length == 0) { return s; }
core/Native/Random.js+7−9
@@ -4,19 +4,17 @@ import Signal
44*/
55
66(function() {
7+ 'use strict';
78
8− function inRange(min) { return function(max) {
9− return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
10− };
9+ function inRange(min, max) {
10+ return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
1111 }
1212
13− function randomize(min) { return function(max) { return function(signal) {
14− function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
15− return Elm.Signal.lift(f)(signal);
16− };
17− };
13+ function randomize(min, max, signal) {
14+ function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
15+ return Elm.Signal.lift(f)(signal);
1816 }
1917
20− Elm.Native.Random = { inRange:inRange, randomize:randomize };
18+ Elm.Native.Random = { inRange:F2(inRange), randomize: F3(randomize) };
2119
2220}());
core/Native/Time.js+34−38
@@ -8,45 +8,41 @@ import Maybe
88
99 function timeNow() { return (new window.Date).getTime(); }
1010
11− function fpsWhen(desiredFPS) { return function (isOn) {
12− var msPerFrame = 1000 / desiredFPS;
13− var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
14− var ticker = Elm.Signal.constant(diff);
15− function tick(zero) { return function() {
16− curr = timeNow();
17− diff = zero ? 0 : curr - prev;
18− prev = curr;
19− Dispatcher.notify(ticker.id, diff);
20− };
21− }
22− var timeoutID = 0;
23− function f(isOn) { return function(t) {
24− if (isOn) {
25− timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
26− } else if (wasOn) {
27− clearTimeout(timeoutID);
28− }
29− wasOn = isOn;
30− return t;
31− };
11+ function fpsWhen(desiredFPS, isOn) {
12+ var msPerFrame = 1000 / desiredFPS;
13+ var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
14+ var ticker = Elm.Signal.constant(diff);
15+ function tick(zero) { return function() {
16+ curr = timeNow();
17+ diff = zero ? 0 : curr - prev;
18+ prev = curr;
19+ Dispatcher.notify(ticker.id, diff);
20+ };
21+ }
22+ var timeoutID = 0;
23+ function f(isOn, t) {
24+ if (isOn) {
25+ timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
26+ } else if (wasOn) {
27+ clearTimeout(timeoutID);
3228 }
33− return Elm.Signal.lift2(f)(isOn)(ticker);
34− };
29+ wasOn = isOn;
30+ return t;
31+ }
32+ return Elm.Signal.lift2(F2(f))(isOn)(ticker);
3533 }
3634
37− function everyWhen(isOn) { return function(t) {
38− var clock = Elm.Signal.constant(timeNow());
39− function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
40− setInterval(tellTime, t);
41− return clock;
42− };
35+ function everyWhen(t, isOn) {
36+ var clock = Elm.Signal.constant(timeNow());
37+ function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
38+ setInterval(tellTime, t);
39+ return clock;
4340 }
4441
45− function since(t) { return function(s) {
46− function cmp(a) { return function(b) { return !Value.eq(a,b); }; }
47− var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
48− return Elm.Signal.lift2(cmp)(Elm.Signal.count(s))(dcount);
49− };
42+ function since(t, s) {
43+ function cmp(a,b) { return !Value.eq(a,b) }
44+ var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
45+ return Elm.Signal.lift2(F2(cmp))(Elm.Signal.count(s))(dcount);
5046 }
5147 function after(t) {
5248 t *= 1000;
@@ -65,11 +61,11 @@ import Maybe
6561 return isNaN(t) ? Elm.Maybe.Nothing : Elm.Maybe.Just(t);
6662 }
6763 Elm.Native.Time = {
68− fpsWhen : fpsWhen,
69− fps : function(t) { return fpsWhen(t)(Elm.Signal.constant(true)); },
70− every : everyWhen(Elm.Signal.constant(true)),
64+ fpsWhen : F2(fpsWhen),
65+ fps : function(t) { return fpsWhen(t, Elm.Signal.constant(true)); },
66+ every : function(t) { return everyWhen(t, Elm.Signal.constant(true)) },
7167 delay : Elm.Signal.delay,
72− since : since,
68+ since : F2(since),
7369 after : after,
7470 before : before,
7571 toDate : function(t) { return new window.Date(t); },