版博士V2.0程序
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

64 líneas
2.4 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.getWriterM = void 0;
  4. function getWriterM(M) {
  5. var map = function (fa, f) {
  6. return function () {
  7. return M.map(fa(), function (_a) {
  8. var a = _a[0], w = _a[1];
  9. return [f(a), w];
  10. });
  11. };
  12. };
  13. return {
  14. map: map,
  15. evalWriter: function (fa) { return M.map(fa(), function (_a) {
  16. var a = _a[0];
  17. return a;
  18. }); },
  19. execWriter: function (fa) { return M.map(fa(), function (_a) {
  20. var _ = _a[0], w = _a[1];
  21. return w;
  22. }); },
  23. tell: function (w) { return function () { return M.of([undefined, w]); }; },
  24. listen: function (fa) { return function () { return M.map(fa(), function (_a) {
  25. var a = _a[0], w = _a[1];
  26. return [[a, w], w];
  27. }); }; },
  28. pass: function (fa) { return function () { return M.map(fa(), function (_a) {
  29. var _b = _a[0], a = _b[0], f = _b[1], w = _a[1];
  30. return [a, f(w)];
  31. }); }; },
  32. listens: function (fa, f) { return function () { return M.map(fa(), function (_a) {
  33. var a = _a[0], w = _a[1];
  34. return [[a, f(w)], w];
  35. }); }; },
  36. censor: function (fa, f) { return function () { return M.map(fa(), function (_a) {
  37. var a = _a[0], w = _a[1];
  38. return [a, f(w)];
  39. }); }; },
  40. getMonad: function (W) {
  41. return {
  42. _E: undefined,
  43. map: map,
  44. of: function (a) { return function () { return M.of([a, W.empty]); }; },
  45. ap: function (mab, ma) { return function () { return M.chain(mab(), function (_a) {
  46. var f = _a[0], w1 = _a[1];
  47. return M.map(ma(), function (_a) {
  48. var a = _a[0], w2 = _a[1];
  49. return [f(a), W.concat(w1, w2)];
  50. });
  51. }); }; },
  52. chain: function (ma, f) { return function () { return M.chain(ma(), function (_a) {
  53. var a = _a[0], w1 = _a[1];
  54. return M.map(f(a)(), function (_a) {
  55. var b = _a[0], w2 = _a[1];
  56. return [b, W.concat(w1, w2)];
  57. });
  58. }); }; }
  59. };
  60. }
  61. };
  62. }
  63. exports.getWriterM = getWriterM;