on 243dcc6 help sign in
95 lines 2.8 kB history raw
1{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
2module Generate.JavaScript.Functions
3 ( functions
4 )
5 where
8import qualified Data.ByteString.Builder as B
9import Text.RawString.QQ (r)
13-- FUNCTIONS
16functions :: B.Builder
17functions = [r|
19function F(arity, fun, wrapper) {
20 wrapper.a = arity;
21 wrapper.f = fun;
22 return wrapper;
25function F2(fun) {
26 return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })
28function F3(fun) {
29 return F(3, fun, function(a) {
30 return function(b) { return function(c) { return fun(a, b, c); }; };
31 });
33function F4(fun) {
34 return F(4, fun, function(a) { return function(b) { return function(c) {
35 return function(d) { return fun(a, b, c, d); }; }; };
36 });
38function F5(fun) {
39 return F(5, fun, function(a) { return function(b) { return function(c) {
40 return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };
41 });
43function F6(fun) {
44 return F(6, fun, function(a) { return function(b) { return function(c) {
45 return function(d) { return function(e) { return function(f) {
46 return fun(a, b, c, d, e, f); }; }; }; }; };
47 });
49function F7(fun) {
50 return F(7, fun, function(a) { return function(b) { return function(c) {
51 return function(d) { return function(e) { return function(f) {
52 return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };
53 });
55function F8(fun) {
56 return F(8, fun, function(a) { return function(b) { return function(c) {
57 return function(d) { return function(e) { return function(f) {
58 return function(g) { return function(h) {
59 return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };
60 });
62function F9(fun) {
63 return F(9, fun, function(a) { return function(b) { return function(c) {
64 return function(d) { return function(e) { return function(f) {
65 return function(g) { return function(h) { return function(i) {
66 return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };
67 });
70function A2(fun, a, b) {
71 return fun.a === 2 ? fun.f(a, b) : fun(a)(b);
73function A3(fun, a, b, c) {
74 return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);
76function A4(fun, a, b, c, d) {
77 return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);
79function A5(fun, a, b, c, d, e) {
80 return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);
82function A6(fun, a, b, c, d, e, f) {
83 return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);
85function A7(fun, a, b, c, d, e, f, g) {
86 return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);
88function A8(fun, a, b, c, d, e, f, g, h) {
89 return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);
91function A9(fun, a, b, c, d, e, f, g, h, i) {
92 return fun.a === 9 ? fun.f(a, b, c, d, e, f, g, h, i) : fun(a)(b)(c)(d)(e)(f)(g)(h)(i);
95|]