diff --git a/core/Native/Color.js b/core/Native/Color.js index ba831f3..b568e9e 100644 --- a/core/Native/Color.js +++ b/core/Native/Color.js @@ -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 +}; + }()); \ No newline at end of file diff --git a/core/Native/Keyboard.js b/core/Native/Keyboard.js index 88c7f84..63b9289 100644 --- a/core/Native/Keyboard.js +++ b/core/Native/Keyboard.js @@ -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) }; }()); diff --git a/core/Native/List.js b/core/Native/List.js index f26ec29..b6f4f90 100644 --- a/core/Native/List.js +++ b/core/Native/List.js @@ -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) { diff --git a/core/Native/Misc.js b/core/Native/Misc.js index 508d120..3dc593d 100644 --- a/core/Native/Misc.js +++ b/core/Native/Misc.js @@ -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; } diff --git a/core/Native/Random.js b/core/Native/Random.js index 548d8a9..6f1715b 100644 --- a/core/Native/Random.js +++ b/core/Native/Random.js @@ -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) }; }()); \ No newline at end of file diff --git a/core/Native/Time.js b/core/Native/Time.js index 6345086..0b84265 100644 --- a/core/Native/Time.js +++ b/core/Native/Time.js @@ -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); - }; + 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); } - 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); - }; + wasOn = isOn; + return t; + } + return Elm.Signal.lift2(F2(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 everyWhen(t, isOn) { + 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 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); },