Use new function call format in more places.

This commit is contained in:
evancz 2013-03-02 09:18:36 -08:00
parent 3926066a64
commit 58275b0002
6 changed files with 73 additions and 80 deletions

View file

@ -15,31 +15,29 @@ function complement(rgb) {
return toRGB(hsv);
}
function hsva(h) { return function(s) { return function(v) { return function(a) {
var clr = toRGB({hue:h, saturation:s, value:v});
clr._3 = a;
return clr;
}; }; };
function hsva(h,s,v,a) {
var clr = toRGB({hue:h, saturation:s, value:v});
clr._3 = a;
return clr;
}
function hsv(h) { return function(s) { return function(v) {
return toRGB({hue:h, saturation:s, value:v}); }; }; }
function hsv(h,s,v) { return toRGB({hue:h, saturation:s, value:v}); }
function toHSV(rgb) {
var hsv = {};
var r = rgb._0 / 255.0, g = rgb._1 / 255.0, b = rgb._2 / 255.0;
var M = Math.max(r,g,b);
var m = Math.min(r,g,b);
var c = M - m;
var hsv = {};
var r = rgb._0 / 255.0, g = rgb._1 / 255.0, b = rgb._2 / 255.0;
var M = Math.max(r,g,b);
var m = Math.min(r,g,b);
var c = M - m;
var h = 0;
if (c === 0) { h = 0; }
else if (M === r) { h = ((g - b) / c) % 6; }
else if (M === g) { h = ((b - r) / c) + 2; }
else if (M === b) { h = ((r - g) / c) + 4; }
h *= 60;
var h = 0;
if (c === 0) { h = 0; }
else if (M === r) { h = ((g - b) / c) % 6; }
else if (M === g) { h = ((b - r) / c) + 2; }
else if (M === b) { h = ((r - g) / c) + 4; }
h *= 60;
return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
return { value : M, hue : h, saturation : (M === 0 ? 0 : c / M) };
}
function between(lo,hi,x) { return lo <= x && x < hi; }
@ -61,8 +59,11 @@ function toRGB(hsv) {
return { ctor:"Color", _0:norm(r+m), _1:norm(g+m), _2:norm(b+m), _3:1 };
}
Elm.Native.Color = {hsva:hsva,
hsv:hsv,
complement:complement,
extract:extract};
Elm.Native.Color = {
hsva:F4(hsva),
hsv:F3(hsv),
complement:complement,
extract:extract
};
}());

View file

@ -14,8 +14,7 @@ import List
return signal;
}
function dir(up) { return function(down) {
return function(left) { return function(right) {
function dir(up, down, left, right) {
function f(ks) {
var x = 0, y = 0;
while (ks.ctor == "Cons") {
@ -30,11 +29,10 @@ import List
return { _:{}, x:x, y:y };
}
return keySignal(f);
}}}
}
function is(key) { return keySignal(Elm.List.member(key)); }
Elm.Native.Keyboard = { isDown:is, dir:dir };
Elm.Native.Keyboard = { isDown:is, dir:F4(dir) };
}());

View file

@ -1,8 +1,8 @@
/**
module Native.List where
/**
module Native.List where
import Native.Function
**/
**/
(function() {
"use strict";
@ -34,7 +34,7 @@ import Native.Function
function range(lo,hi) {
var lst = Nil;
if (lo <= hi) {
do { lst = Cons(hi,lst) } while (hi-->lo);
do { lst = Cons(hi,lst) } while (hi-->lo);
}
return lst
}
@ -119,7 +119,7 @@ import Native.Function
}
function scanl1(f, xs) {
xs.ctor === "Nil" ? throwError('scanl1') : return scanl(f, xs._0, xs._1);
return xs.ctor === "Nil" ? throwError('scanl1') : scanl(f, xs._0, xs._1);
}
function filter(pred, xs) {

View file

@ -30,7 +30,7 @@ import JSON
}
var Tuple0 = { ctor: "Tuple0" }
function Tuple2(x,y) { return { ctor = "Tuple2", _0:x, _1:y }; }
function Tuple2(x,y) { return { ctor = "Tuple2", _0:x, _1:y } }
function makeSpaces(s) {
if (s.length == 0) { return s; }

View file

@ -4,19 +4,17 @@ import Signal
*/
(function() {
'use strict';
function inRange(min) { return function(max) {
return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
};
function inRange(min, max) {
return Elm.Signal.constant(Math.floor(Math.random() * (max-min+1)) + min);
}
function randomize(min) { return function(max) { return function(signal) {
function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
return Elm.Signal.lift(f)(signal);
};
};
function randomize(min, max, signal) {
function f(x) { return Math.floor(Math.random() * (max-min+1)) + min; }
return Elm.Signal.lift(f)(signal);
}
Elm.Native.Random = { inRange:inRange, randomize:randomize };
Elm.Native.Random = { inRange:F2(inRange), randomize: F3(randomize) };
}());

View file

@ -8,45 +8,41 @@ import Maybe
function timeNow() { return (new window.Date).getTime(); }
function fpsWhen(desiredFPS) { return function (isOn) {
var msPerFrame = 1000 / desiredFPS;
var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
var ticker = Elm.Signal.constant(diff);
function tick(zero) { return function() {
curr = timeNow();
diff = zero ? 0 : curr - prev;
prev = curr;
Dispatcher.notify(ticker.id, diff);
};
}
var timeoutID = 0;
function f(isOn) { return function(t) {
if (isOn) {
timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
} else if (wasOn) {
clearTimeout(timeoutID);
}
wasOn = isOn;
return t;
};
}
return Elm.Signal.lift2(f)(isOn)(ticker);
};
}
function everyWhen(isOn) { return function(t) {
var clock = Elm.Signal.constant(timeNow());
function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
setInterval(tellTime, t);
return clock;
};
}
function since(t) { return function(s) {
function cmp(a) { return function(b) { return !Value.eq(a,b); }; }
var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
return Elm.Signal.lift2(cmp)(Elm.Signal.count(s))(dcount);
function fpsWhen(desiredFPS, isOn) {
var msPerFrame = 1000 / desiredFPS;
var prev = timeNow(), curr = prev, diff = 0, wasOn = true;
var ticker = Elm.Signal.constant(diff);
function tick(zero) { return function() {
curr = timeNow();
diff = zero ? 0 : curr - prev;
prev = curr;
Dispatcher.notify(ticker.id, diff);
};
}
var timeoutID = 0;
function f(isOn, t) {
if (isOn) {
timeoutID = setTimeout(tick(!wasOn && isOn), msPerFrame);
} else if (wasOn) {
clearTimeout(timeoutID);
}
wasOn = isOn;
return t;
}
return Elm.Signal.lift2(F2(f))(isOn)(ticker);
}
function everyWhen(t, isOn) {
var clock = Elm.Signal.constant(timeNow());
function tellTime() { Dispatcher.notify(clock.id, timeNow()); }
setInterval(tellTime, t);
return clock;
}
function since(t, s) {
function cmp(a,b) { return !Value.eq(a,b) }
var dcount = Elm.Signal.count(Elm.Signal.delay(t)(s));
return Elm.Signal.lift2(F2(cmp))(Elm.Signal.count(s))(dcount);
}
function after(t) {
t *= 1000;
@ -65,11 +61,11 @@ import Maybe
return isNaN(t) ? Elm.Maybe.Nothing : Elm.Maybe.Just(t);
}
Elm.Native.Time = {
fpsWhen : fpsWhen,
fps : function(t) { return fpsWhen(t)(Elm.Signal.constant(true)); },
every : everyWhen(Elm.Signal.constant(true)),
fpsWhen : F2(fpsWhen),
fps : function(t) { return fpsWhen(t, Elm.Signal.constant(true)); },
every : function(t) { return everyWhen(t, Elm.Signal.constant(true)) },
delay : Elm.Signal.delay,
since : since,
since : F2(since),
after : after,
before : before,
toDate : function(t) { return new window.Date(t); },