把PureScript轉成JavaScript例子
就是使用pulp browserify指令,將PureScript轉成JavaScript,
此例中轉成JavaScript後console log 出 Hello, World!
==> 把轉好的JS放入xxx.html中,如下面顯示:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Apply = require("../Control.Apply");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var Applicative = function (Apply0, pure) {
this.Apply0 = Apply0;
this.pure = pure;
};
var pure = function (dict) {
return dict.pure;
};
var unless = function (dictApplicative) {
return function (v) {
return function (v1) {
if (!v) {
return v1;
};
if (v) {
return pure(dictApplicative)(Data_Unit.unit);
};
throw new Error("Failed pattern match at Control.Applicative line 62, column 1 - line 62, column 65: " + [ v.constructor.name, v1.constructor.name ]);
};
};
};
var when = function (dictApplicative) {
return function (v) {
return function (v1) {
if (v) {
return v1;
};
if (!v) {
return pure(dictApplicative)(Data_Unit.unit);
};
throw new Error("Failed pattern match at Control.Applicative line 57, column 1 - line 57, column 63: " + [ v.constructor.name, v1.constructor.name ]);
};
};
};
var liftA1 = function (dictApplicative) {
return function (f) {
return function (a) {
return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);
};
};
};
var applicativeFn = new Applicative(function () {
return Control_Apply.applyFn;
}, function (x) {
return function (v) {
return x;
};
});
var applicativeArray = new Applicative(function () {
return Control_Apply.applyArray;
}, function (x) {
return [ x ];
});
module.exports = {
Applicative: Applicative,
pure: pure,
liftA1: liftA1,
unless: unless,
when: when,
applicativeFn: applicativeFn,
applicativeArray: applicativeArray
};
},{"../Control.Apply":3,"../Data.Functor":15,"../Data.Unit":19}],2:[function(require,module,exports){
"use strict";
exports.arrayApply = function (fs) {
return function (xs) {
var l = fs.length;
var k = xs.length;
var result = new Array(l*k);
var n = 0;
for (var i = 0; i < l; i++) {
var f = fs[i];
for (var j = 0; j < k; j++) {
result[n++] = f(xs[j]);
}
}
return result;
};
};
},{}],3:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Category = require("../Control.Category");
var Data_Function = require("../Data.Function");
var Data_Functor = require("../Data.Functor");
var Apply = function (Functor0, apply) {
this.Functor0 = Functor0;
this.apply = apply;
};
var applyFn = new Apply(function () {
return Data_Functor.functorFn;
}, function (f) {
return function (g) {
return function (x) {
return f(x)(g(x));
};
};
});
var applyArray = new Apply(function () {
return Data_Functor.functorArray;
}, $foreign.arrayApply);
var apply = function (dict) {
return dict.apply;
};
var applyFirst = function (dictApply) {
return function (a) {
return function (b) {
return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function["const"])(a))(b);
};
};
};
var applySecond = function (dictApply) {
return function (a) {
return function (b) {
return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function["const"](Control_Category.id(Control_Category.categoryFn)))(a))(b);
};
};
};
var lift2 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b);
};
};
};
};
var lift3 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return function (c) {
return apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c);
};
};
};
};
};
var lift4 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return function (c) {
return function (d) {
return apply(dictApply)(apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c))(d);
};
};
};
};
};
};
var lift5 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return function (c) {
return function (d) {
return function (e) {
return apply(dictApply)(apply(dictApply)(apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c))(d))(e);
};
};
};
};
};
};
};
module.exports = {
Apply: Apply,
apply: apply,
applyFirst: applyFirst,
applySecond: applySecond,
lift2: lift2,
lift3: lift3,
lift4: lift4,
lift5: lift5,
applyFn: applyFn,
applyArray: applyArray
};
},{"../Control.Category":6,"../Data.Function":13,"../Data.Functor":15,"./foreign":2}],4:[function(require,module,exports){
"use strict";
exports.arrayBind = function (arr) {
return function (f) {
var result = [];
for (var i = 0, l = arr.length; i < l; i++) {
Array.prototype.push.apply(result, f(arr[i]));
}
return result;
};
};
},{}],5:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Applicative = require("../Control.Applicative");
var Control_Apply = require("../Control.Apply");
var Control_Category = require("../Control.Category");
var Data_Function = require("../Data.Function");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var Bind = function (Apply0, bind) {
this.Apply0 = Apply0;
this.bind = bind;
};
var Discard = function (discard) {
this.discard = discard;
};
var discard = function (dict) {
return dict.discard;
};
var bindFn = new Bind(function () {
return Control_Apply.applyFn;
}, function (m) {
return function (f) {
return function (x) {
return f(m(x))(x);
};
};
});
var bindArray = new Bind(function () {
return Control_Apply.applyArray;
}, $foreign.arrayBind);
var bind = function (dict) {
return dict.bind;
};
var bindFlipped = function (dictBind) {
return Data_Function.flip(bind(dictBind));
};
var composeKleisliFlipped = function (dictBind) {
return function (f) {
return function (g) {
return function (a) {
return bindFlipped(dictBind)(f)(g(a));
};
};
};
};
var composeKleisli = function (dictBind) {
return function (f) {
return function (g) {
return function (a) {
return bind(dictBind)(f(a))(g);
};
};
};
};
var discardUnit = new Discard(function (dictBind) {
return bind(dictBind);
});
var ifM = function (dictBind) {
return function (cond) {
return function (t) {
return function (f) {
return bind(dictBind)(cond)(function (cond$prime) {
if (cond$prime) {
return t;
};
return f;
});
};
};
};
};
var join = function (dictBind) {
return function (m) {
return bind(dictBind)(m)(Control_Category.id(Control_Category.categoryFn));
};
};
module.exports = {
Bind: Bind,
bind: bind,
bindFlipped: bindFlipped,
Discard: Discard,
discard: discard,
join: join,
composeKleisli: composeKleisli,
composeKleisliFlipped: composeKleisliFlipped,
ifM: ifM,
bindFn: bindFn,
bindArray: bindArray,
discardUnit: discardUnit
};
},{"../Control.Applicative":1,"../Control.Apply":3,"../Control.Category":6,"../Data.Function":13,"../Data.Functor":15,"../Data.Unit":19,"./foreign":4}],6:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Semigroupoid = require("../Control.Semigroupoid");
var Category = function (Semigroupoid0, id) {
this.Semigroupoid0 = Semigroupoid0;
this.id = id;
};
var id = function (dict) {
return dict.id;
};
var categoryFn = new Category(function () {
return Control_Semigroupoid.semigroupoidFn;
}, function (x) {
return x;
});
module.exports = {
Category: Category,
id: id,
categoryFn: categoryFn
};
},{"../Control.Semigroupoid":12}],7:[function(require,module,exports){
"use strict";
exports.log = function (s) {
return function () {
console.log(s);
return {};
};
};
exports.warn = function (s) {
return function () {
console.warn(s);
return {};
};
};
exports.error = function (s) {
return function () {
console.error(s);
return {};
};
};
exports.info = function (s) {
return function () {
console.info(s);
return {};
};
};
},{}],8:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Monad_Eff = require("../Control.Monad.Eff");
var Data_Show = require("../Data.Show");
var Data_Unit = require("../Data.Unit");
var warnShow = function (dictShow) {
return function (a) {
return $foreign.warn(Data_Show.show(dictShow)(a));
};
};
var logShow = function (dictShow) {
return function (a) {
return $foreign.log(Data_Show.show(dictShow)(a));
};
};
var infoShow = function (dictShow) {
return function (a) {
return $foreign.info(Data_Show.show(dictShow)(a));
};
};
var errorShow = function (dictShow) {
return function (a) {
return $foreign.error(Data_Show.show(dictShow)(a));
};
};
module.exports = {
logShow: logShow,
warnShow: warnShow,
errorShow: errorShow,
infoShow: infoShow,
log: $foreign.log,
warn: $foreign.warn,
error: $foreign.error,
info: $foreign.info
};
},{"../Control.Monad.Eff":10,"../Data.Show":17,"../Data.Unit":19,"./foreign":7}],9:[function(require,module,exports){
"use strict";
exports.pureE = function (a) {
return function () {
return a;
};
};
exports.bindE = function (a) {
return function (f) {
return function () {
return f(a())();
};
};
};
exports.runPure = function (f) {
return f();
};
exports.untilE = function (f) {
return function () {
while (!f());
return {};
};
};
exports.whileE = function (f) {
return function (a) {
return function () {
while (f()) {
a();
}
return {};
};
};
};
exports.forE = function (lo) {
return function (hi) {
return function (f) {
return function () {
for (var i = lo; i < hi; i++) {
f(i)();
}
};
};
};
};
exports.foreachE = function (as) {
return function (f) {
return function () {
for (var i = 0, l = as.length; i < l; i++) {
f(as[i])();
}
};
};
};
},{}],10:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Applicative = require("../Control.Applicative");
var Control_Apply = require("../Control.Apply");
var Control_Bind = require("../Control.Bind");
var Control_Monad = require("../Control.Monad");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var monadEff = new Control_Monad.Monad(function () {
return applicativeEff;
}, function () {
return bindEff;
});
var bindEff = new Control_Bind.Bind(function () {
return applyEff;
}, $foreign.bindE);
var applyEff = new Control_Apply.Apply(function () {
return functorEff;
}, Control_Monad.ap(monadEff));
var applicativeEff = new Control_Applicative.Applicative(function () {
return applyEff;
}, $foreign.pureE);
var functorEff = new Data_Functor.Functor(Control_Applicative.liftA1(applicativeEff));
module.exports = {
functorEff: functorEff,
applyEff: applyEff,
applicativeEff: applicativeEff,
bindEff: bindEff,
monadEff: monadEff,
runPure: $foreign.runPure,
untilE: $foreign.untilE,
whileE: $foreign.whileE,
forE: $foreign.forE,
foreachE: $foreign.foreachE
};
},{"../Control.Applicative":1,"../Control.Apply":3,"../Control.Bind":5,"../Control.Monad":11,"../Data.Functor":15,"../Data.Unit":19,"./foreign":9}],11:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Applicative = require("../Control.Applicative");
var Control_Apply = require("../Control.Apply");
var Control_Bind = require("../Control.Bind");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var Monad = function (Applicative0, Bind1) {
this.Applicative0 = Applicative0;
this.Bind1 = Bind1;
};
var whenM = function (dictMonad) {
return function (mb) {
return function (m) {
return Control_Bind.bind(dictMonad.Bind1())(mb)(function (v) {
return Control_Applicative.when(dictMonad.Applicative0())(v)(m);
});
};
};
};
var unlessM = function (dictMonad) {
return function (mb) {
return function (m) {
return Control_Bind.bind(dictMonad.Bind1())(mb)(function (v) {
return Control_Applicative.unless(dictMonad.Applicative0())(v)(m);
});
};
};
};
var monadFn = new Monad(function () {
return Control_Applicative.applicativeFn;
}, function () {
return Control_Bind.bindFn;
});
var monadArray = new Monad(function () {
return Control_Applicative.applicativeArray;
}, function () {
return Control_Bind.bindArray;
});
var liftM1 = function (dictMonad) {
return function (f) {
return function (a) {
return Control_Bind.bind(dictMonad.Bind1())(a)(function (v) {
return Control_Applicative.pure(dictMonad.Applicative0())(f(v));
});
};
};
};
var ap = function (dictMonad) {
return function (f) {
return function (a) {
return Control_Bind.bind(dictMonad.Bind1())(f)(function (v) {
return Control_Bind.bind(dictMonad.Bind1())(a)(function (v1) {
return Control_Applicative.pure(dictMonad.Applicative0())(v(v1));
});
});
};
};
};
module.exports = {
Monad: Monad,
liftM1: liftM1,
ap: ap,
whenM: whenM,
unlessM: unlessM,
monadFn: monadFn,
monadArray: monadArray
};
},{"../Control.Applicative":1,"../Control.Apply":3,"../Control.Bind":5,"../Data.Functor":15,"../Data.Unit":19}],12:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Semigroupoid = function (compose) {
this.compose = compose;
};
var semigroupoidFn = new Semigroupoid(function (f) {
return function (g) {
return function (x) {
return f(g(x));
};
};
});
var compose = function (dict) {
return dict.compose;
};
var composeFlipped = function (dictSemigroupoid) {
return function (f) {
return function (g) {
return compose(dictSemigroupoid)(g)(f);
};
};
};
module.exports = {
compose: compose,
Semigroupoid: Semigroupoid,
composeFlipped: composeFlipped,
semigroupoidFn: semigroupoidFn
};
},{}],13:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Category = require("../Control.Category");
var on = function (f) {
return function (g) {
return function (x) {
return function (y) {
return f(g(x))(g(y));
};
};
};
};
var flip = function (f) {
return function (b) {
return function (a) {
return f(a)(b);
};
};
};
var $$const = function (a) {
return function (v) {
return a;
};
};
var applyFlipped = function (x) {
return function (f) {
return f(x);
};
};
var apply = function (f) {
return function (x) {
return f(x);
};
};
module.exports = {
flip: flip,
"const": $$const,
apply: apply,
applyFlipped: applyFlipped,
on: on
};
},{"../Control.Category":6}],14:[function(require,module,exports){
"use strict";
exports.arrayMap = function (f) {
return function (arr) {
var l = arr.length;
var result = new Array(l);
for (var i = 0; i < l; i++) {
result[i] = f(arr[i]);
}
return result;
};
};
},{}],15:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Semigroupoid = require("../Control.Semigroupoid");
var Data_Function = require("../Data.Function");
var Data_Unit = require("../Data.Unit");
var Functor = function (map) {
this.map = map;
};
var map = function (dict) {
return dict.map;
};
var mapFlipped = function (dictFunctor) {
return function (fa) {
return function (f) {
return map(dictFunctor)(f)(fa);
};
};
};
var $$void = function (dictFunctor) {
return map(dictFunctor)(Data_Function["const"](Data_Unit.unit));
};
var voidLeft = function (dictFunctor) {
return function (f) {
return function (x) {
return map(dictFunctor)(Data_Function["const"](x))(f);
};
};
};
var voidRight = function (dictFunctor) {
return function (x) {
return map(dictFunctor)(Data_Function["const"](x));
};
};
var functorFn = new Functor(Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn));
var functorArray = new Functor($foreign.arrayMap);
var flap = function (dictFunctor) {
return function (ff) {
return function (x) {
return map(dictFunctor)(function (f) {
return f(x);
})(ff);
};
};
};
module.exports = {
Functor: Functor,
map: map,
mapFlipped: mapFlipped,
"void": $$void,
voidRight: voidRight,
voidLeft: voidLeft,
flap: flap,
functorFn: functorFn,
functorArray: functorArray
};
},{"../Control.Semigroupoid":12,"../Data.Function":13,"../Data.Unit":19,"./foreign":14}],16:[function(require,module,exports){
"use strict";
exports.showIntImpl = function (n) {
return n.toString();
};
exports.showNumberImpl = function (n) {
var str = n.toString();
return isNaN(str + ".0") ? str : str + ".0";
};
exports.showCharImpl = function (c) {
var code = c.charCodeAt(0);
if (code < 0x20 || code === 0x7F) {
switch (c) {
case "\x07": return "'\\a'";
case "\b": return "'\\b'";
case "\f": return "'\\f'";
case "\n": return "'\\n'";
case "\r": return "'\\r'";
case "\t": return "'\\t'";
case "\v": return "'\\v'";
}
return "'\\" + code.toString(10) + "'";
}
return c === "'" || c === "\\" ? "'\\" + c + "'" : "'" + c + "'";
};
exports.showStringImpl = function (s) {
var l = s.length;
return "\"" + s.replace(
/[\0-\x1F\x7F"\\]/g, // eslint-disable-line no-control-regex
function (c, i) {
switch (c) {
case "\"":
case "\\":
return "\\" + c;
case "\x07": return "\\a";
case "\b": return "\\b";
case "\f": return "\\f";
case "\n": return "\\n";
case "\r": return "\\r";
case "\t": return "\\t";
case "\v": return "\\v";
}
var k = i + 1;
var empty = k < l && s[k] >= "0" && s[k] <= "9" ? "\\&" : "";
return "\\" + c.charCodeAt(0).toString(10) + empty;
}
) + "\"";
};
exports.showArrayImpl = function (f) {
return function (xs) {
var ss = [];
for (var i = 0, l = xs.length; i < l; i++) {
ss[i] = f(xs[i]);
}
return "[" + ss.join(",") + "]";
};
};
},{}],17:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Show = function (show) {
this.show = show;
};
var showString = new Show($foreign.showStringImpl);
var showNumber = new Show($foreign.showNumberImpl);
var showInt = new Show($foreign.showIntImpl);
var showChar = new Show($foreign.showCharImpl);
var showBoolean = new Show(function (v) {
if (v) {
return "true";
};
if (!v) {
return "false";
};
throw new Error("Failed pattern match at Data.Show line 12, column 1 - line 12, column 37: " + [ v.constructor.name ]);
});
var show = function (dict) {
return dict.show;
};
var showArray = function (dictShow) {
return new Show($foreign.showArrayImpl(show(dictShow)));
};
module.exports = {
Show: Show,
show: show,
showBoolean: showBoolean,
showInt: showInt,
showNumber: showNumber,
showChar: showChar,
showString: showString,
showArray: showArray
};
},{"./foreign":16}],18:[function(require,module,exports){
"use strict";
exports.unit = {};
},{}],19:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Data_Show = require("../Data.Show");
var showUnit = new Data_Show.Show(function (v) {
return "unit";
});
module.exports = {
showUnit: showUnit,
unit: $foreign.unit
};
},{"../Data.Show":17,"./foreign":18}],20:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Monad_Eff_Console = require("../Control.Monad.Eff.Console");
var main = Control_Monad_Eff_Console.log("Hello, World!");
module.exports = {
main: main
};
},{"../Control.Monad.Eff.Console":8}],21:[function(require,module,exports){
require('Main').main();
},{"Main":20}]},{},[21]);
</script>
</body>
</html>
最後把xxx.html放到localhost去跑,,顯示結果截圖如下:
此例中轉成JavaScript後console log 出 Hello, World!
==> 把轉好的JS放入xxx.html中,如下面顯示:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Apply = require("../Control.Apply");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var Applicative = function (Apply0, pure) {
this.Apply0 = Apply0;
this.pure = pure;
};
var pure = function (dict) {
return dict.pure;
};
var unless = function (dictApplicative) {
return function (v) {
return function (v1) {
if (!v) {
return v1;
};
if (v) {
return pure(dictApplicative)(Data_Unit.unit);
};
throw new Error("Failed pattern match at Control.Applicative line 62, column 1 - line 62, column 65: " + [ v.constructor.name, v1.constructor.name ]);
};
};
};
var when = function (dictApplicative) {
return function (v) {
return function (v1) {
if (v) {
return v1;
};
if (!v) {
return pure(dictApplicative)(Data_Unit.unit);
};
throw new Error("Failed pattern match at Control.Applicative line 57, column 1 - line 57, column 63: " + [ v.constructor.name, v1.constructor.name ]);
};
};
};
var liftA1 = function (dictApplicative) {
return function (f) {
return function (a) {
return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a);
};
};
};
var applicativeFn = new Applicative(function () {
return Control_Apply.applyFn;
}, function (x) {
return function (v) {
return x;
};
});
var applicativeArray = new Applicative(function () {
return Control_Apply.applyArray;
}, function (x) {
return [ x ];
});
module.exports = {
Applicative: Applicative,
pure: pure,
liftA1: liftA1,
unless: unless,
when: when,
applicativeFn: applicativeFn,
applicativeArray: applicativeArray
};
},{"../Control.Apply":3,"../Data.Functor":15,"../Data.Unit":19}],2:[function(require,module,exports){
"use strict";
exports.arrayApply = function (fs) {
return function (xs) {
var l = fs.length;
var k = xs.length;
var result = new Array(l*k);
var n = 0;
for (var i = 0; i < l; i++) {
var f = fs[i];
for (var j = 0; j < k; j++) {
result[n++] = f(xs[j]);
}
}
return result;
};
};
},{}],3:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Category = require("../Control.Category");
var Data_Function = require("../Data.Function");
var Data_Functor = require("../Data.Functor");
var Apply = function (Functor0, apply) {
this.Functor0 = Functor0;
this.apply = apply;
};
var applyFn = new Apply(function () {
return Data_Functor.functorFn;
}, function (f) {
return function (g) {
return function (x) {
return f(x)(g(x));
};
};
});
var applyArray = new Apply(function () {
return Data_Functor.functorArray;
}, $foreign.arrayApply);
var apply = function (dict) {
return dict.apply;
};
var applyFirst = function (dictApply) {
return function (a) {
return function (b) {
return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function["const"])(a))(b);
};
};
};
var applySecond = function (dictApply) {
return function (a) {
return function (b) {
return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function["const"](Control_Category.id(Control_Category.categoryFn)))(a))(b);
};
};
};
var lift2 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b);
};
};
};
};
var lift3 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return function (c) {
return apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c);
};
};
};
};
};
var lift4 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return function (c) {
return function (d) {
return apply(dictApply)(apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c))(d);
};
};
};
};
};
};
var lift5 = function (dictApply) {
return function (f) {
return function (a) {
return function (b) {
return function (c) {
return function (d) {
return function (e) {
return apply(dictApply)(apply(dictApply)(apply(dictApply)(apply(dictApply)(Data_Functor.map(dictApply.Functor0())(f)(a))(b))(c))(d))(e);
};
};
};
};
};
};
};
module.exports = {
Apply: Apply,
apply: apply,
applyFirst: applyFirst,
applySecond: applySecond,
lift2: lift2,
lift3: lift3,
lift4: lift4,
lift5: lift5,
applyFn: applyFn,
applyArray: applyArray
};
},{"../Control.Category":6,"../Data.Function":13,"../Data.Functor":15,"./foreign":2}],4:[function(require,module,exports){
"use strict";
exports.arrayBind = function (arr) {
return function (f) {
var result = [];
for (var i = 0, l = arr.length; i < l; i++) {
Array.prototype.push.apply(result, f(arr[i]));
}
return result;
};
};
},{}],5:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Applicative = require("../Control.Applicative");
var Control_Apply = require("../Control.Apply");
var Control_Category = require("../Control.Category");
var Data_Function = require("../Data.Function");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var Bind = function (Apply0, bind) {
this.Apply0 = Apply0;
this.bind = bind;
};
var Discard = function (discard) {
this.discard = discard;
};
var discard = function (dict) {
return dict.discard;
};
var bindFn = new Bind(function () {
return Control_Apply.applyFn;
}, function (m) {
return function (f) {
return function (x) {
return f(m(x))(x);
};
};
});
var bindArray = new Bind(function () {
return Control_Apply.applyArray;
}, $foreign.arrayBind);
var bind = function (dict) {
return dict.bind;
};
var bindFlipped = function (dictBind) {
return Data_Function.flip(bind(dictBind));
};
var composeKleisliFlipped = function (dictBind) {
return function (f) {
return function (g) {
return function (a) {
return bindFlipped(dictBind)(f)(g(a));
};
};
};
};
var composeKleisli = function (dictBind) {
return function (f) {
return function (g) {
return function (a) {
return bind(dictBind)(f(a))(g);
};
};
};
};
var discardUnit = new Discard(function (dictBind) {
return bind(dictBind);
});
var ifM = function (dictBind) {
return function (cond) {
return function (t) {
return function (f) {
return bind(dictBind)(cond)(function (cond$prime) {
if (cond$prime) {
return t;
};
return f;
});
};
};
};
};
var join = function (dictBind) {
return function (m) {
return bind(dictBind)(m)(Control_Category.id(Control_Category.categoryFn));
};
};
module.exports = {
Bind: Bind,
bind: bind,
bindFlipped: bindFlipped,
Discard: Discard,
discard: discard,
join: join,
composeKleisli: composeKleisli,
composeKleisliFlipped: composeKleisliFlipped,
ifM: ifM,
bindFn: bindFn,
bindArray: bindArray,
discardUnit: discardUnit
};
},{"../Control.Applicative":1,"../Control.Apply":3,"../Control.Category":6,"../Data.Function":13,"../Data.Functor":15,"../Data.Unit":19,"./foreign":4}],6:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Semigroupoid = require("../Control.Semigroupoid");
var Category = function (Semigroupoid0, id) {
this.Semigroupoid0 = Semigroupoid0;
this.id = id;
};
var id = function (dict) {
return dict.id;
};
var categoryFn = new Category(function () {
return Control_Semigroupoid.semigroupoidFn;
}, function (x) {
return x;
});
module.exports = {
Category: Category,
id: id,
categoryFn: categoryFn
};
},{"../Control.Semigroupoid":12}],7:[function(require,module,exports){
"use strict";
exports.log = function (s) {
return function () {
console.log(s);
return {};
};
};
exports.warn = function (s) {
return function () {
console.warn(s);
return {};
};
};
exports.error = function (s) {
return function () {
console.error(s);
return {};
};
};
exports.info = function (s) {
return function () {
console.info(s);
return {};
};
};
},{}],8:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Monad_Eff = require("../Control.Monad.Eff");
var Data_Show = require("../Data.Show");
var Data_Unit = require("../Data.Unit");
var warnShow = function (dictShow) {
return function (a) {
return $foreign.warn(Data_Show.show(dictShow)(a));
};
};
var logShow = function (dictShow) {
return function (a) {
return $foreign.log(Data_Show.show(dictShow)(a));
};
};
var infoShow = function (dictShow) {
return function (a) {
return $foreign.info(Data_Show.show(dictShow)(a));
};
};
var errorShow = function (dictShow) {
return function (a) {
return $foreign.error(Data_Show.show(dictShow)(a));
};
};
module.exports = {
logShow: logShow,
warnShow: warnShow,
errorShow: errorShow,
infoShow: infoShow,
log: $foreign.log,
warn: $foreign.warn,
error: $foreign.error,
info: $foreign.info
};
},{"../Control.Monad.Eff":10,"../Data.Show":17,"../Data.Unit":19,"./foreign":7}],9:[function(require,module,exports){
"use strict";
exports.pureE = function (a) {
return function () {
return a;
};
};
exports.bindE = function (a) {
return function (f) {
return function () {
return f(a())();
};
};
};
exports.runPure = function (f) {
return f();
};
exports.untilE = function (f) {
return function () {
while (!f());
return {};
};
};
exports.whileE = function (f) {
return function (a) {
return function () {
while (f()) {
a();
}
return {};
};
};
};
exports.forE = function (lo) {
return function (hi) {
return function (f) {
return function () {
for (var i = lo; i < hi; i++) {
f(i)();
}
};
};
};
};
exports.foreachE = function (as) {
return function (f) {
return function () {
for (var i = 0, l = as.length; i < l; i++) {
f(as[i])();
}
};
};
};
},{}],10:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Applicative = require("../Control.Applicative");
var Control_Apply = require("../Control.Apply");
var Control_Bind = require("../Control.Bind");
var Control_Monad = require("../Control.Monad");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var monadEff = new Control_Monad.Monad(function () {
return applicativeEff;
}, function () {
return bindEff;
});
var bindEff = new Control_Bind.Bind(function () {
return applyEff;
}, $foreign.bindE);
var applyEff = new Control_Apply.Apply(function () {
return functorEff;
}, Control_Monad.ap(monadEff));
var applicativeEff = new Control_Applicative.Applicative(function () {
return applyEff;
}, $foreign.pureE);
var functorEff = new Data_Functor.Functor(Control_Applicative.liftA1(applicativeEff));
module.exports = {
functorEff: functorEff,
applyEff: applyEff,
applicativeEff: applicativeEff,
bindEff: bindEff,
monadEff: monadEff,
runPure: $foreign.runPure,
untilE: $foreign.untilE,
whileE: $foreign.whileE,
forE: $foreign.forE,
foreachE: $foreign.foreachE
};
},{"../Control.Applicative":1,"../Control.Apply":3,"../Control.Bind":5,"../Control.Monad":11,"../Data.Functor":15,"../Data.Unit":19,"./foreign":9}],11:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Applicative = require("../Control.Applicative");
var Control_Apply = require("../Control.Apply");
var Control_Bind = require("../Control.Bind");
var Data_Functor = require("../Data.Functor");
var Data_Unit = require("../Data.Unit");
var Monad = function (Applicative0, Bind1) {
this.Applicative0 = Applicative0;
this.Bind1 = Bind1;
};
var whenM = function (dictMonad) {
return function (mb) {
return function (m) {
return Control_Bind.bind(dictMonad.Bind1())(mb)(function (v) {
return Control_Applicative.when(dictMonad.Applicative0())(v)(m);
});
};
};
};
var unlessM = function (dictMonad) {
return function (mb) {
return function (m) {
return Control_Bind.bind(dictMonad.Bind1())(mb)(function (v) {
return Control_Applicative.unless(dictMonad.Applicative0())(v)(m);
});
};
};
};
var monadFn = new Monad(function () {
return Control_Applicative.applicativeFn;
}, function () {
return Control_Bind.bindFn;
});
var monadArray = new Monad(function () {
return Control_Applicative.applicativeArray;
}, function () {
return Control_Bind.bindArray;
});
var liftM1 = function (dictMonad) {
return function (f) {
return function (a) {
return Control_Bind.bind(dictMonad.Bind1())(a)(function (v) {
return Control_Applicative.pure(dictMonad.Applicative0())(f(v));
});
};
};
};
var ap = function (dictMonad) {
return function (f) {
return function (a) {
return Control_Bind.bind(dictMonad.Bind1())(f)(function (v) {
return Control_Bind.bind(dictMonad.Bind1())(a)(function (v1) {
return Control_Applicative.pure(dictMonad.Applicative0())(v(v1));
});
});
};
};
};
module.exports = {
Monad: Monad,
liftM1: liftM1,
ap: ap,
whenM: whenM,
unlessM: unlessM,
monadFn: monadFn,
monadArray: monadArray
};
},{"../Control.Applicative":1,"../Control.Apply":3,"../Control.Bind":5,"../Data.Functor":15,"../Data.Unit":19}],12:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Semigroupoid = function (compose) {
this.compose = compose;
};
var semigroupoidFn = new Semigroupoid(function (f) {
return function (g) {
return function (x) {
return f(g(x));
};
};
});
var compose = function (dict) {
return dict.compose;
};
var composeFlipped = function (dictSemigroupoid) {
return function (f) {
return function (g) {
return compose(dictSemigroupoid)(g)(f);
};
};
};
module.exports = {
compose: compose,
Semigroupoid: Semigroupoid,
composeFlipped: composeFlipped,
semigroupoidFn: semigroupoidFn
};
},{}],13:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Category = require("../Control.Category");
var on = function (f) {
return function (g) {
return function (x) {
return function (y) {
return f(g(x))(g(y));
};
};
};
};
var flip = function (f) {
return function (b) {
return function (a) {
return f(a)(b);
};
};
};
var $$const = function (a) {
return function (v) {
return a;
};
};
var applyFlipped = function (x) {
return function (f) {
return f(x);
};
};
var apply = function (f) {
return function (x) {
return f(x);
};
};
module.exports = {
flip: flip,
"const": $$const,
apply: apply,
applyFlipped: applyFlipped,
on: on
};
},{"../Control.Category":6}],14:[function(require,module,exports){
"use strict";
exports.arrayMap = function (f) {
return function (arr) {
var l = arr.length;
var result = new Array(l);
for (var i = 0; i < l; i++) {
result[i] = f(arr[i]);
}
return result;
};
};
},{}],15:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Control_Semigroupoid = require("../Control.Semigroupoid");
var Data_Function = require("../Data.Function");
var Data_Unit = require("../Data.Unit");
var Functor = function (map) {
this.map = map;
};
var map = function (dict) {
return dict.map;
};
var mapFlipped = function (dictFunctor) {
return function (fa) {
return function (f) {
return map(dictFunctor)(f)(fa);
};
};
};
var $$void = function (dictFunctor) {
return map(dictFunctor)(Data_Function["const"](Data_Unit.unit));
};
var voidLeft = function (dictFunctor) {
return function (f) {
return function (x) {
return map(dictFunctor)(Data_Function["const"](x))(f);
};
};
};
var voidRight = function (dictFunctor) {
return function (x) {
return map(dictFunctor)(Data_Function["const"](x));
};
};
var functorFn = new Functor(Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn));
var functorArray = new Functor($foreign.arrayMap);
var flap = function (dictFunctor) {
return function (ff) {
return function (x) {
return map(dictFunctor)(function (f) {
return f(x);
})(ff);
};
};
};
module.exports = {
Functor: Functor,
map: map,
mapFlipped: mapFlipped,
"void": $$void,
voidRight: voidRight,
voidLeft: voidLeft,
flap: flap,
functorFn: functorFn,
functorArray: functorArray
};
},{"../Control.Semigroupoid":12,"../Data.Function":13,"../Data.Unit":19,"./foreign":14}],16:[function(require,module,exports){
"use strict";
exports.showIntImpl = function (n) {
return n.toString();
};
exports.showNumberImpl = function (n) {
var str = n.toString();
return isNaN(str + ".0") ? str : str + ".0";
};
exports.showCharImpl = function (c) {
var code = c.charCodeAt(0);
if (code < 0x20 || code === 0x7F) {
switch (c) {
case "\x07": return "'\\a'";
case "\b": return "'\\b'";
case "\f": return "'\\f'";
case "\n": return "'\\n'";
case "\r": return "'\\r'";
case "\t": return "'\\t'";
case "\v": return "'\\v'";
}
return "'\\" + code.toString(10) + "'";
}
return c === "'" || c === "\\" ? "'\\" + c + "'" : "'" + c + "'";
};
exports.showStringImpl = function (s) {
var l = s.length;
return "\"" + s.replace(
/[\0-\x1F\x7F"\\]/g, // eslint-disable-line no-control-regex
function (c, i) {
switch (c) {
case "\"":
case "\\":
return "\\" + c;
case "\x07": return "\\a";
case "\b": return "\\b";
case "\f": return "\\f";
case "\n": return "\\n";
case "\r": return "\\r";
case "\t": return "\\t";
case "\v": return "\\v";
}
var k = i + 1;
var empty = k < l && s[k] >= "0" && s[k] <= "9" ? "\\&" : "";
return "\\" + c.charCodeAt(0).toString(10) + empty;
}
) + "\"";
};
exports.showArrayImpl = function (f) {
return function (xs) {
var ss = [];
for (var i = 0, l = xs.length; i < l; i++) {
ss[i] = f(xs[i]);
}
return "[" + ss.join(",") + "]";
};
};
},{}],17:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Show = function (show) {
this.show = show;
};
var showString = new Show($foreign.showStringImpl);
var showNumber = new Show($foreign.showNumberImpl);
var showInt = new Show($foreign.showIntImpl);
var showChar = new Show($foreign.showCharImpl);
var showBoolean = new Show(function (v) {
if (v) {
return "true";
};
if (!v) {
return "false";
};
throw new Error("Failed pattern match at Data.Show line 12, column 1 - line 12, column 37: " + [ v.constructor.name ]);
});
var show = function (dict) {
return dict.show;
};
var showArray = function (dictShow) {
return new Show($foreign.showArrayImpl(show(dictShow)));
};
module.exports = {
Show: Show,
show: show,
showBoolean: showBoolean,
showInt: showInt,
showNumber: showNumber,
showChar: showChar,
showString: showString,
showArray: showArray
};
},{"./foreign":16}],18:[function(require,module,exports){
"use strict";
exports.unit = {};
},{}],19:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var $foreign = require("./foreign");
var Data_Show = require("../Data.Show");
var showUnit = new Data_Show.Show(function (v) {
return "unit";
});
module.exports = {
showUnit: showUnit,
unit: $foreign.unit
};
},{"../Data.Show":17,"./foreign":18}],20:[function(require,module,exports){
// Generated by purs version 0.11.7
"use strict";
var Control_Monad_Eff_Console = require("../Control.Monad.Eff.Console");
var main = Control_Monad_Eff_Console.log("Hello, World!");
module.exports = {
main: main
};
},{"../Control.Monad.Eff.Console":8}],21:[function(require,module,exports){
require('Main').main();
},{"Main":20}]},{},[21]);
</script>
</body>
</html>
最後把xxx.html放到localhost去跑,,顯示結果截圖如下:
完成!
留言
張貼留言